{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Content-based recommender using Deep Structured Semantic Model\n",
    "\n",
    "An example of how to build a Deep Structured Semantic Model (DSSM) for incorporating complex content-based features into a recommender system.  See [Learning Deep Structured Semantic Models for Web Search using Clickthrough Data](https://www.microsoft.com/en-us/research/publication/learning-deep-structured-semantic-models-for-web-search-using-clickthrough-data/).  This example does not attempt to provide a datasource or train a model, but merely show how to structure a complex DSSM network."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "import warnings\n",
    "\n",
    "import mxnet as mx\n",
    "from mxnet import gluon, nd, autograd, sym\n",
    "import numpy as np\n",
    "from sklearn.random_projection import johnson_lindenstrauss_min_dim\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# Define some constants\n",
    "max_user = int(1e5)\n",
    "title_vocab_size = int(3e4)\n",
    "query_vocab_size = int(3e4)\n",
    "num_samples = int(1e4)\n",
    "hidden_units = 128\n",
    "epsilon_proj = 0.25\n",
    "\n",
    "ctx = mx.gpu() if mx.context.num_gpus() > 0 else mx.cpu()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Bag of words random projection"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "A previous version of this example contained a bag of word random projection example, it is kept here for reference but not used in the next example.\n",
    "Random Projection is a dimension reduction technique that guarantees the disruption of the pair-wise distance between your original data point within a certain bound.\n",
    "What is even more interesting is that the dimension to project onto to guarantee that bound does not depend on the original number of dimension but solely on the total number of datapoints.\n",
    "You can see more explanation [in this blog post](http://jasonpunyon.com/blog/2017/12/02/fun-with-random-numbers-random-projection/)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "To keep a distance disruption ~< 25.0% of our 10000 samples we need to randomly project to at least 1414 dimensions\n"
     ]
    }
   ],
   "source": [
    "proj_dim = johnson_lindenstrauss_min_dim(num_samples, epsilon_proj)\n",
    "print(\"To keep a distance disruption ~< {}% of our {} samples we need to randomly project to at least {} dimensions\".format(epsilon_proj*100, num_samples, proj_dim))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "class BagOfWordsRandomProjection(gluon.HybridBlock):\n",
    "    def __init__(self, vocab_size, output_dim, random_seed=54321, pad_index=0):\n",
    "        \"\"\"\n",
    "        :param int vocab_size: number of element in the vocabulary\n",
    "        :param int output_dim: projection dimension\n",
    "        :param int ramdon_seed: seed to use to guarantee same projection\n",
    "        :param int pad_index: index of the vocabulary used for padding sentences\n",
    "        \"\"\"\n",
    "        super(BagOfWordsRandomProjection, self).__init__()\n",
    "        self._vocab_size = vocab_size\n",
    "        self._output_dim = output_dim\n",
    "        proj = self._random_unit_vecs(vocab_size=vocab_size, output_dim=output_dim, random_seed=random_seed)\n",
    "        # we set the projection of the padding word to 0\n",
    "        proj[pad_index, :] = 0\n",
    "        self.proj = self.params.get_constant('proj', value=proj)\n",
    "\n",
    "    def _random_unit_vecs(self, vocab_size, output_dim, random_seed):\n",
    "        rs = np.random.RandomState(seed=random_seed)\n",
    "        W = rs.normal(size=(vocab_size, output_dim))\n",
    "        Wlen = np.linalg.norm(W, axis=1)\n",
    "        W_unit = W / Wlen[:,None]\n",
    "        return W_unit\n",
    "\n",
    "    def hybrid_forward(self, F, x, proj):\n",
    "        \"\"\"\n",
    "        :param nd or sym F:\n",
    "        :param nd.NDArray x: index of tokens\n",
    "        returns the sum of the projected embeddings of each token\n",
    "        \"\"\"\n",
    "        embedded = F.Embedding(x, proj, input_dim=self._vocab_size, output_dim=self._output_dim)\n",
    "        return embedded.sum(axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "bowrp = BagOfWordsRandomProjection(1000, 20)\n",
    "bowrp.initialize()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "\n",
       "[[ 0.35554492  0.0736109  -0.1220893   0.11155054 -0.20963743  0.21141198\n",
       "   0.12296599  0.12428369 -0.10999548 -0.16867855 -0.09068598  0.14154953\n",
       "  -0.24029303  0.11956739  0.02830955 -0.14226514 -0.45963028 -0.5456747\n",
       "  -0.5663947  -0.10585886]\n",
       " [-0.31655627 -0.13582113 -0.13815539  0.42596683  0.25674546  0.5024462\n",
       "  -0.3122709   0.01826438 -0.0277671  -0.14526835  0.44378105  0.09626544\n",
       "   0.24572927  0.36588538  0.17922089 -0.21583243 -0.30497772  0.19484927\n",
       "  -0.20705326 -0.13759173]]\n",
       "<NDArray 2x20 @cpu(0)>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bowrp(mx.nd.array([[10, 50, 100], [5, 10, 0]]))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "With padding:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "\n",
       "[[ 0.35554492  0.0736109  -0.1220893   0.11155054 -0.20963743  0.21141198\n",
       "   0.12296599  0.12428369 -0.10999548 -0.16867855 -0.09068598  0.14154953\n",
       "  -0.24029303  0.11956739  0.02830955 -0.14226514 -0.45963028 -0.5456747\n",
       "  -0.5663947  -0.10585886]\n",
       " [-0.31655627 -0.13582113 -0.13815539  0.42596683  0.25674546  0.5024462\n",
       "  -0.3122709   0.01826438 -0.0277671  -0.14526835  0.44378105  0.09626544\n",
       "   0.24572927  0.36588538  0.17922089 -0.21583243 -0.30497772  0.19484927\n",
       "  -0.20705326 -0.13759173]]\n",
       "<NDArray 2x20 @cpu(0)>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bowrp(mx.nd.array([[10, 50, 100, 0], [5, 10, 0, 0]]))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Content-based recommender / ranking system using DSSM"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For example in the search result ranking problem:\n",
    "You have users, that have performed text-based searches. They were presented with results, and selected one of them.\n",
    "Results are composed of a title and an image.\n",
    "\n",
    "Your positive examples will be the clicked items in the search results, and the negative examples are sampled from the non-clicked examples.\n",
    "\n",
    "The network will jointly learn embeddings for users and query text making up the \"Query\", title and image making the \"Item\" and learn how similar they are.\n",
    "\n",
    "After training, you can index the embeddings for your items and do a knn search with your query embeddings using the cosine similarity to return ranked items"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "proj_dim = 128"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "class DSSMRecommenderNetwork(gluon.HybridBlock):\n",
    "    def __init__(self, query_vocab_size, proj_dim, max_user, title_vocab_size, hidden_units, random_seed=54321, p=0.5):\n",
    "        super(DSSMRecommenderNetwork, self).__init__()\n",
    "        with self.name_scope():\n",
    "            \n",
    "            # User/Query pipeline\n",
    "            self.user_embedding = gluon.nn.Embedding(max_user, proj_dim)\n",
    "            self.user_mlp = gluon.nn.Dense(hidden_units, activation=\"relu\")\n",
    "            \n",
    "            # Instead of bag of words, we use learned embeddings + stacked biLSTM average\n",
    "            self.query_text_embedding = gluon.nn.Embedding(query_vocab_size, proj_dim)\n",
    "            self.query_lstm = gluon.rnn.LSTM(hidden_units, 2, bidirectional=True)\n",
    "            self.query_text_mlp = gluon.nn.Dense(hidden_units, activation=\"relu\")            \n",
    "            \n",
    "            self.query_dropout = gluon.nn.Dropout(p)\n",
    "            self.query_mlp = gluon.nn.Dense(hidden_units, activation=\"relu\")\n",
    "\n",
    "            # Item pipeline\n",
    "            # Instead of bag of words, we use learned embeddings + stacked biLSTM average\n",
    "            self.title_embedding = gluon.nn.Embedding(title_vocab_size, proj_dim)\n",
    "            self.title_lstm = gluon.rnn.LSTM(hidden_units, 2, bidirectional=True)\n",
    "            self.title_mlp = gluon.nn.Dense(hidden_units, activation=\"relu\")\n",
    "            \n",
    "            # You could use vgg here for example\n",
    "            self.image_embedding = gluon.model_zoo.vision.resnet18_v2(pretrained=False).features \n",
    "            self.image_mlp = gluon.nn.Dense(hidden_units, activation=\"relu\")\n",
    "            \n",
    "            self.item_dropout = gluon.nn.Dropout(p)\n",
    "            self.item_mlp = gluon.nn.Dense(hidden_units, activation=\"relu\")\n",
    "    \n",
    "    def hybrid_forward(self, F, user, query_text, title, image):\n",
    "        # Query\n",
    "        user = self.user_embedding(user)\n",
    "        user = self.user_mlp(user)\n",
    "\n",
    "        query_text = self.query_text_embedding(query_text)\n",
    "        query_text = self.query_lstm(query_text.transpose((1,0,2)))\n",
    "        # average the states\n",
    "        query_text = query_text.mean(axis=0)\n",
    "        query_text = self.query_text_mlp(query_text)\n",
    "        \n",
    "        query = F.concat(user, query_text)\n",
    "        query = self.query_dropout(query)\n",
    "        query = self.query_mlp(query)\n",
    "        \n",
    "        # Item\n",
    "        title_text = self.title_embedding(title)\n",
    "        title_text = self.title_lstm(title_text.transpose((1,0,2)))\n",
    "        # average the states\n",
    "        title_text = title_text.mean(axis=0)\n",
    "        title_text = self.title_mlp(title_text)\n",
    "        \n",
    "        image = self.image_embedding(image)\n",
    "        image = self.image_mlp(image)\n",
    "        \n",
    "        item = F.concat(title_text, image)\n",
    "        item = self.item_dropout(item)\n",
    "        item = self.item_mlp(item)\n",
    "        \n",
    "        # Cosine Similarity\n",
    "        query = query.expand_dims(axis=2)\n",
    "        item = item.expand_dims(axis=2)\n",
    "        sim = F.batch_dot(query, item, transpose_a=True) / (query.norm(axis=1) * item.norm(axis=1) + 1e-9).expand_dims(axis=2)\n",
    "        \n",
    "        return sim.squeeze(axis=2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false,
    "scrolled": false
   },
   "outputs": [],
   "source": [
    "network = DSSMRecommenderNetwork(\n",
    "    query_vocab_size,\n",
    "    proj_dim,\n",
    "    max_user,\n",
    "    title_vocab_size,\n",
    "    hidden_units\n",
    ")\n",
    "\n",
    "\n",
    "network.initialize(mx.init.Xavier(), ctx)\n",
    "\n",
    "# Load pre-trained vgg16 weights\n",
    "with network.name_scope():\n",
    "    network.image_embedding = gluon.model_zoo.vision.resnet18_v2(pretrained=True, ctx=ctx).features"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "It is quite hard to visualize the network since it is relatively complex but you can see the two-pronged structure, and the resnet18 branch"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<!-- Generated by graphviz version 2.38.0 (20140413.2041)\n",
       " -->\n",
       "<!-- Title: plot Pages: 1 -->\n",
       "<svg width=\"10034pt\" height=\"8697pt\"\n",
       " viewBox=\"0.00 0.00 10034.00 8697.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 8693)\">\n",
       "<title>plot</title>\n",
       "<polygon fill=\"white\" stroke=\"none\" points=\"-4,4 -4,-8693 10030,-8693 10030,4 -4,4\"/>\n",
       "<!-- user -->\n",
       "<g id=\"node1\" class=\"node\"><title>user</title>\n",
       "<ellipse fill=\"#8dd3c7\" stroke=\"black\" cx=\"6280\" cy=\"-7134\" rx=\"47\" ry=\"29\"/>\n",
       "<text text-anchor=\"middle\" x=\"6280\" y=\"-7130.3\" font-family=\"Times,serif\" font-size=\"14.00\">user</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_embedding0_fwd -->\n",
       "<g id=\"node2\" class=\"node\"><title>dssmrecommendernetwork0_embedding0_fwd</title>\n",
       "<polygon fill=\"#fccde5\" stroke=\"black\" points=\"6417,-7272 6143,-7272 6143,-7214 6417,-7214 6417,-7272\"/>\n",
       "<text text-anchor=\"middle\" x=\"6280\" y=\"-7239.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_embedding0_fwd</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_embedding0_fwd&#45;&gt;user -->\n",
       "<g id=\"edge1\" class=\"edge\"><title>dssmrecommendernetwork0_embedding0_fwd&#45;&gt;user</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M6280,-7203.58C6280,-7190.28 6280,-7175.63 6280,-7163.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"6280,-7213.89 6275.5,-7203.89 6280,-7208.89 6280,-7203.89 6280,-7203.89 6280,-7203.89 6280,-7208.89 6284.5,-7203.89 6280,-7213.89 6280,-7213.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"6283.5\" y=\"-7184.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_dense0_fwd -->\n",
       "<g id=\"node3\" class=\"node\"><title>dssmrecommendernetwork0_dense0_fwd</title>\n",
       "<polygon fill=\"#fb8072\" stroke=\"black\" points=\"6331.5,-7381 6228.5,-7381 6228.5,-7323 6331.5,-7323 6331.5,-7381\"/>\n",
       "<text text-anchor=\"middle\" x=\"6280\" y=\"-7355.8\" font-family=\"Times,serif\" font-size=\"14.00\">FullyConnected</text>\n",
       "<text text-anchor=\"middle\" x=\"6280\" y=\"-7340.8\" font-family=\"Times,serif\" font-size=\"14.00\">128</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_dense0_fwd&#45;&gt;dssmrecommendernetwork0_embedding0_fwd -->\n",
       "<g id=\"edge2\" class=\"edge\"><title>dssmrecommendernetwork0_dense0_fwd&#45;&gt;dssmrecommendernetwork0_embedding0_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M6280,-7312.58C6280,-7299.28 6280,-7284.63 6280,-7272.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"6280,-7322.89 6275.5,-7312.89 6280,-7317.89 6280,-7312.89 6280,-7312.89 6280,-7312.89 6280,-7317.89 6284.5,-7312.89 6280,-7322.89 6280,-7322.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"6297\" y=\"-7293.8\" font-family=\"Times,serif\" font-size=\"14.00\">1x128</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_dense0_relu_fwd -->\n",
       "<g id=\"node4\" class=\"node\"><title>dssmrecommendernetwork0_dense0_relu_fwd</title>\n",
       "<polygon fill=\"#ffffb3\" stroke=\"black\" points=\"6327,-7490 6233,-7490 6233,-7432 6327,-7432 6327,-7490\"/>\n",
       "<text text-anchor=\"middle\" x=\"6280\" y=\"-7464.8\" font-family=\"Times,serif\" font-size=\"14.00\">Activation</text>\n",
       "<text text-anchor=\"middle\" x=\"6280\" y=\"-7449.8\" font-family=\"Times,serif\" font-size=\"14.00\">relu</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_dense0_relu_fwd&#45;&gt;dssmrecommendernetwork0_dense0_fwd -->\n",
       "<g id=\"edge3\" class=\"edge\"><title>dssmrecommendernetwork0_dense0_relu_fwd&#45;&gt;dssmrecommendernetwork0_dense0_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M6280,-7421.58C6280,-7408.28 6280,-7393.63 6280,-7381.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"6280,-7431.89 6275.5,-7421.89 6280,-7426.89 6280,-7421.89 6280,-7421.89 6280,-7421.89 6280,-7426.89 6284.5,-7421.89 6280,-7431.89 6280,-7431.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"6290.5\" y=\"-7402.8\" font-family=\"Times,serif\" font-size=\"14.00\">128</text>\n",
       "</g>\n",
       "<!-- query_text -->\n",
       "<g id=\"node5\" class=\"node\"><title>query_text</title>\n",
       "<ellipse fill=\"#8dd3c7\" stroke=\"black\" cx=\"5334\" cy=\"-6807\" rx=\"47\" ry=\"29\"/>\n",
       "<text text-anchor=\"middle\" x=\"5334\" y=\"-6803.3\" font-family=\"Times,serif\" font-size=\"14.00\">query_text</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_embedding1_fwd -->\n",
       "<g id=\"node6\" class=\"node\"><title>dssmrecommendernetwork0_embedding1_fwd</title>\n",
       "<polygon fill=\"#fccde5\" stroke=\"black\" points=\"5471,-6945 5197,-6945 5197,-6887 5471,-6887 5471,-6945\"/>\n",
       "<text text-anchor=\"middle\" x=\"5334\" y=\"-6912.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_embedding1_fwd</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_embedding1_fwd&#45;&gt;query_text -->\n",
       "<g id=\"edge4\" class=\"edge\"><title>dssmrecommendernetwork0_embedding1_fwd&#45;&gt;query_text</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5334,-6876.58C5334,-6863.28 5334,-6848.63 5334,-6836.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5334,-6886.89 5329.5,-6876.89 5334,-6881.89 5334,-6876.89 5334,-6876.89 5334,-6876.89 5334,-6881.89 5338.5,-6876.89 5334,-6886.89 5334,-6886.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5341\" y=\"-6857.8\" font-family=\"Times,serif\" font-size=\"14.00\">30</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_transpose0 -->\n",
       "<g id=\"node7\" class=\"node\"><title>dssmrecommendernetwork0_transpose0</title>\n",
       "<polygon fill=\"#fccde5\" stroke=\"black\" points=\"6661,-7054 6425,-7054 6425,-6996 6661,-6996 6661,-7054\"/>\n",
       "<text text-anchor=\"middle\" x=\"6543\" y=\"-7021.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_transpose0</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_transpose0&#45;&gt;dssmrecommendernetwork0_embedding1_fwd -->\n",
       "<g id=\"edge5\" class=\"edge\"><title>dssmrecommendernetwork0_transpose0&#45;&gt;dssmrecommendernetwork0_embedding1_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M6415.31,-6996.04C6415.2,-6996.02 6415.1,-6996.01 6415,-6996 6227.61,-6973.73 5752.88,-7004.18 5566,-6978 5517.23,-6971.17 5464.01,-6957.63 5420.87,-6945.04\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"6424.93,-6997.3 6414.43,-7000.46 6419.97,-6996.65 6415.01,-6996 6415.01,-6996 6415.01,-6996 6419.97,-6996.65 6415.6,-6991.54 6424.93,-6997.3 6424.93,-6997.3\"/>\n",
       "<text text-anchor=\"middle\" x=\"5586.5\" y=\"-6966.8\" font-family=\"Times,serif\" font-size=\"14.00\">30x128</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm0_reshape0 -->\n",
       "<g id=\"node8\" class=\"node\"><title>dssmrecommendernetwork0_lstm0_reshape0</title>\n",
       "<polygon fill=\"#fdb462\" stroke=\"black\" points=\"8052,-6945 7788,-6945 7788,-6887 8052,-6887 8052,-6945\"/>\n",
       "<text text-anchor=\"middle\" x=\"7920\" y=\"-6912.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_lstm0_reshape0</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm0_reshape1 -->\n",
       "<g id=\"node9\" class=\"node\"><title>dssmrecommendernetwork0_lstm0_reshape1</title>\n",
       "<polygon fill=\"#fdb462\" stroke=\"black\" points=\"8334,-6945 8070,-6945 8070,-6887 8334,-6887 8334,-6945\"/>\n",
       "<text text-anchor=\"middle\" x=\"8202\" y=\"-6912.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_lstm0_reshape1</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm0_reshape2 -->\n",
       "<g id=\"node10\" class=\"node\"><title>dssmrecommendernetwork0_lstm0_reshape2</title>\n",
       "<polygon fill=\"#fdb462\" stroke=\"black\" points=\"8616,-6945 8352,-6945 8352,-6887 8616,-6887 8616,-6945\"/>\n",
       "<text text-anchor=\"middle\" x=\"8484\" y=\"-6912.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_lstm0_reshape2</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm0_reshape3 -->\n",
       "<g id=\"node11\" class=\"node\"><title>dssmrecommendernetwork0_lstm0_reshape3</title>\n",
       "<polygon fill=\"#fdb462\" stroke=\"black\" points=\"8898,-6945 8634,-6945 8634,-6887 8898,-6887 8898,-6945\"/>\n",
       "<text text-anchor=\"middle\" x=\"8766\" y=\"-6912.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_lstm0_reshape3</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm0_reshape4 -->\n",
       "<g id=\"node12\" class=\"node\"><title>dssmrecommendernetwork0_lstm0_reshape4</title>\n",
       "<polygon fill=\"#fdb462\" stroke=\"black\" points=\"9180,-6945 8916,-6945 8916,-6887 9180,-6887 9180,-6945\"/>\n",
       "<text text-anchor=\"middle\" x=\"9048\" y=\"-6912.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_lstm0_reshape4</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm0_reshape5 -->\n",
       "<g id=\"node13\" class=\"node\"><title>dssmrecommendernetwork0_lstm0_reshape5</title>\n",
       "<polygon fill=\"#fdb462\" stroke=\"black\" points=\"9462,-6945 9198,-6945 9198,-6887 9462,-6887 9462,-6945\"/>\n",
       "<text text-anchor=\"middle\" x=\"9330\" y=\"-6912.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_lstm0_reshape5</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm0_reshape6 -->\n",
       "<g id=\"node14\" class=\"node\"><title>dssmrecommendernetwork0_lstm0_reshape6</title>\n",
       "<polygon fill=\"#fdb462\" stroke=\"black\" points=\"9744,-6945 9480,-6945 9480,-6887 9744,-6887 9744,-6945\"/>\n",
       "<text text-anchor=\"middle\" x=\"9612\" y=\"-6912.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_lstm0_reshape6</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm0_reshape7 -->\n",
       "<g id=\"node15\" class=\"node\"><title>dssmrecommendernetwork0_lstm0_reshape7</title>\n",
       "<polygon fill=\"#fdb462\" stroke=\"black\" points=\"10026,-6945 9762,-6945 9762,-6887 10026,-6887 10026,-6945\"/>\n",
       "<text text-anchor=\"middle\" x=\"9894\" y=\"-6912.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_lstm0_reshape7</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm0_reshape8 -->\n",
       "<g id=\"node16\" class=\"node\"><title>dssmrecommendernetwork0_lstm0_reshape8</title>\n",
       "<polygon fill=\"#fdb462\" stroke=\"black\" points=\"5753,-6945 5489,-6945 5489,-6887 5753,-6887 5753,-6945\"/>\n",
       "<text text-anchor=\"middle\" x=\"5621\" y=\"-6912.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_lstm0_reshape8</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm0_reshape9 -->\n",
       "<g id=\"node17\" class=\"node\"><title>dssmrecommendernetwork0_lstm0_reshape9</title>\n",
       "<polygon fill=\"#fdb462\" stroke=\"black\" points=\"6035,-6945 5771,-6945 5771,-6887 6035,-6887 6035,-6945\"/>\n",
       "<text text-anchor=\"middle\" x=\"5903\" y=\"-6912.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_lstm0_reshape9</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm0_reshape10 -->\n",
       "<g id=\"node18\" class=\"node\"><title>dssmrecommendernetwork0_lstm0_reshape10</title>\n",
       "<polygon fill=\"#fdb462\" stroke=\"black\" points=\"6324.5,-6945 6053.5,-6945 6053.5,-6887 6324.5,-6887 6324.5,-6945\"/>\n",
       "<text text-anchor=\"middle\" x=\"6189\" y=\"-6912.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_lstm0_reshape10</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm0_reshape11 -->\n",
       "<g id=\"node19\" class=\"node\"><title>dssmrecommendernetwork0_lstm0_reshape11</title>\n",
       "<polygon fill=\"#fdb462\" stroke=\"black\" points=\"6613.5,-6945 6342.5,-6945 6342.5,-6887 6613.5,-6887 6613.5,-6945\"/>\n",
       "<text text-anchor=\"middle\" x=\"6478\" y=\"-6912.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_lstm0_reshape11</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm0_reshape12 -->\n",
       "<g id=\"node20\" class=\"node\"><title>dssmrecommendernetwork0_lstm0_reshape12</title>\n",
       "<polygon fill=\"#fdb462\" stroke=\"black\" points=\"6902.5,-6945 6631.5,-6945 6631.5,-6887 6902.5,-6887 6902.5,-6945\"/>\n",
       "<text text-anchor=\"middle\" x=\"6767\" y=\"-6912.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_lstm0_reshape12</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm0_reshape13 -->\n",
       "<g id=\"node21\" class=\"node\"><title>dssmrecommendernetwork0_lstm0_reshape13</title>\n",
       "<polygon fill=\"#fdb462\" stroke=\"black\" points=\"7191.5,-6945 6920.5,-6945 6920.5,-6887 7191.5,-6887 7191.5,-6945\"/>\n",
       "<text text-anchor=\"middle\" x=\"7056\" y=\"-6912.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_lstm0_reshape13</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm0_reshape14 -->\n",
       "<g id=\"node22\" class=\"node\"><title>dssmrecommendernetwork0_lstm0_reshape14</title>\n",
       "<polygon fill=\"#fdb462\" stroke=\"black\" points=\"7480.5,-6945 7209.5,-6945 7209.5,-6887 7480.5,-6887 7480.5,-6945\"/>\n",
       "<text text-anchor=\"middle\" x=\"7345\" y=\"-6912.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_lstm0_reshape14</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm0_reshape15 -->\n",
       "<g id=\"node23\" class=\"node\"><title>dssmrecommendernetwork0_lstm0_reshape15</title>\n",
       "<polygon fill=\"#fdb462\" stroke=\"black\" points=\"7769.5,-6945 7498.5,-6945 7498.5,-6887 7769.5,-6887 7769.5,-6945\"/>\n",
       "<text text-anchor=\"middle\" x=\"7634\" y=\"-6912.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_lstm0_reshape15</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm0__rnn_param_concat0 -->\n",
       "<g id=\"node24\" class=\"node\"><title>dssmrecommendernetwork0_lstm0__rnn_param_concat0</title>\n",
       "<polygon fill=\"#fccde5\" stroke=\"black\" points=\"7799.5,-7054 7468.5,-7054 7468.5,-6996 7799.5,-6996 7799.5,-7054\"/>\n",
       "<text text-anchor=\"middle\" x=\"7634\" y=\"-7021.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_lstm0__rnn_param_concat0</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm0__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm0_reshape0 -->\n",
       "<g id=\"edge6\" class=\"edge\"><title>dssmrecommendernetwork0_lstm0__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm0_reshape0</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M7718.62,-6992.34C7758.67,-6977.36 7806.1,-6959.61 7844.86,-6945.11\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"7709.14,-6995.89 7716.93,-6988.17 7713.83,-6994.13 7718.51,-6992.38 7718.51,-6992.38 7718.51,-6992.38 7713.83,-6994.13 7720.09,-6996.6 7709.14,-6995.89 7709.14,-6995.89\"/>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm0__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm0_reshape1 -->\n",
       "<g id=\"edge7\" class=\"edge\"><title>dssmrecommendernetwork0_lstm0__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm0_reshape1</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M7798.34,-6994.11C7877.74,-6979.54 7974.38,-6961.61 8061,-6945 8063.94,-6944.44 8066.92,-6943.86 8069.92,-6943.28\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"7788.25,-6995.96 7797.28,-6989.73 7793.17,-6995.06 7798.09,-6994.16 7798.09,-6994.16 7798.09,-6994.16 7793.17,-6995.06 7798.9,-6998.59 7788.25,-6995.96 7788.25,-6995.96\"/>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm0__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm0_reshape2 -->\n",
       "<g id=\"edge8\" class=\"edge\"><title>dssmrecommendernetwork0_lstm0__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm0_reshape2</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M7809.74,-6995.94C8047.21,-6966.19 8110.34,-6979.12 8343,-6945 8345.96,-6944.57 8348.96,-6944.11 8351.98,-6943.64\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"7799.76,-6997.2 7809.12,-6991.48 7804.73,-6996.58 7809.69,-6995.95 7809.69,-6995.95 7809.69,-6995.95 7804.73,-6996.58 7810.25,-7000.41 7799.76,-6997.2 7799.76,-6997.2\"/>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm0__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm0_reshape3 -->\n",
       "<g id=\"edge9\" class=\"edge\"><title>dssmrecommendernetwork0_lstm0__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm0_reshape3</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M7809.8,-6995.96C7941.25,-6981.82 7976.1,-6985.95 8104,-6978 8335.57,-6963.6 8394.93,-6975 8625,-6945 8627.97,-6944.61 8630.97,-6944.2 8633.99,-6943.77\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"7799.75,-6997.06 7809.2,-6991.5 7804.72,-6996.52 7809.69,-6995.97 7809.69,-6995.97 7809.69,-6995.97 7804.72,-6996.52 7810.18,-7000.45 7799.75,-6997.06 7799.75,-6997.06\"/>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm0__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm0_reshape4 -->\n",
       "<g id=\"edge10\" class=\"edge\"><title>dssmrecommendernetwork0_lstm0__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm0_reshape4</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M7809.99,-6995.96C8022.75,-6975.52 8078.51,-6987.52 8288,-6978 8563.22,-6965.49 8633.64,-6979.25 8907,-6945 8909.97,-6944.63 8912.97,-6944.23 8916,-6943.81\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"7799.74,-6996.96 7809.25,-6991.51 7804.71,-6996.48 7809.69,-6995.99 7809.69,-6995.99 7809.69,-6995.99 7804.71,-6996.48 7810.13,-7000.47 7799.74,-6996.96 7799.74,-6996.96\"/>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm0__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm0_reshape5 -->\n",
       "<g id=\"edge11\" class=\"edge\"><title>dssmrecommendernetwork0_lstm0__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm0_reshape5</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M7810.11,-6995.96C8125.96,-6967.42 8208.07,-6989.68 8521,-6978 8818.04,-6966.91 8893.98,-6981.38 9189,-6945 9191.85,-6944.65 9194.73,-6944.27 9197.62,-6943.87\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"7799.73,-6996.91 7809.28,-6991.52 7804.71,-6996.45 7809.69,-6996 7809.69,-6996 7809.69,-6996 7804.71,-6996.45 7810.1,-7000.48 7799.73,-6996.91 7799.73,-6996.91\"/>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm0__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm0_reshape6 -->\n",
       "<g id=\"edge12\" class=\"edge\"><title>dssmrecommendernetwork0_lstm0__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm0_reshape6</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M7809.77,-6996.02C8039.25,-6977.18 8565.9,-6985.02 8778,-6978 9086.18,-6967.8 9164.94,-6982.47 9471,-6945 9473.85,-6944.65 9476.73,-6944.28 9479.62,-6943.88\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"7799.73,-6996.88 7809.31,-6991.54 7804.71,-6996.45 7809.69,-6996.03 7809.69,-6996.03 7809.69,-6996.03 7804.71,-6996.45 7810.08,-7000.51 7799.73,-6996.88 7799.73,-6996.88\"/>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm0__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm0_reshape7 -->\n",
       "<g id=\"edge13\" class=\"edge\"><title>dssmrecommendernetwork0_lstm0__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm0_reshape7</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M7809.83,-6996.01C8098.49,-6972.58 8772.87,-6986.28 9044,-6978 9359.31,-6968.37 9439.86,-6983.16 9753,-6945 9755.85,-6944.65 9758.73,-6944.28 9761.62,-6943.89\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"7799.73,-6996.86 7809.32,-6991.54 7804.71,-6996.44 7809.69,-6996.02 7809.69,-6996.02 7809.69,-6996.02 7804.71,-6996.44 7810.07,-7000.51 7799.73,-6996.86 7799.73,-6996.86\"/>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm0__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm0_reshape8 -->\n",
       "<g id=\"edge14\" class=\"edge\"><title>dssmrecommendernetwork0_lstm0__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm0_reshape8</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M7458.48,-7019.26C7132.54,-7010.31 6445.32,-6990.67 6207,-6978 6008.96,-6967.47 5958.52,-6971.7 5762,-6945 5759.03,-6944.6 5756.03,-6944.17 5753.01,-6943.72\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"7468.49,-7019.54 7458.37,-7023.76 7463.49,-7019.4 7458.49,-7019.26 7458.49,-7019.26 7458.49,-7019.26 7463.49,-7019.4 7458.62,-7014.76 7468.49,-7019.54 7468.49,-7019.54\"/>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm0__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm0_reshape9 -->\n",
       "<g id=\"edge15\" class=\"edge\"><title>dssmrecommendernetwork0_lstm0__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm0_reshape9</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M7458.17,-7018.53C7235.85,-7011.22 6841.38,-6996.96 6504,-6978 6299.35,-6966.5 6247.14,-6972.35 6044,-6945 6041.03,-6944.6 6038.03,-6944.18 6035.01,-6943.73\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"7468.3,-7018.86 7458.15,-7023.03 7463.3,-7018.7 7458.3,-7018.53 7458.3,-7018.53 7458.3,-7018.53 7463.3,-7018.7 7458.45,-7014.03 7468.3,-7018.86 7468.3,-7018.86\"/>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm0__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm0_reshape10 -->\n",
       "<g id=\"edge16\" class=\"edge\"><title>dssmrecommendernetwork0_lstm0__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm0_reshape10</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M7458.16,-7021.34C7207.41,-7015.73 6733.15,-6998.38 6333,-6945 6330.22,-6944.63 6327.42,-6944.24 6324.6,-6943.83\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"7468.45,-7021.57 7458.36,-7025.84 7463.46,-7021.46 7458.46,-7021.35 7458.46,-7021.35 7458.46,-7021.35 7463.46,-7021.46 7458.56,-7016.85 7468.45,-7021.57 7468.45,-7021.57\"/>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm0__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm0_reshape11 -->\n",
       "<g id=\"edge17\" class=\"edge\"><title>dssmrecommendernetwork0_lstm0__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm0_reshape11</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M7458.23,-7016.29C7256.05,-7006.03 6914.46,-6984.41 6623,-6945 6619.95,-6944.59 6616.87,-6944.15 6613.76,-6943.7\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"7468.34,-7016.8 7458.13,-7020.79 7463.35,-7016.55 7458.36,-7016.3 7458.36,-7016.3 7458.36,-7016.3 7463.35,-7016.55 7458.58,-7011.8 7468.34,-7016.8 7468.34,-7016.8\"/>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm0__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm0_reshape12 -->\n",
       "<g id=\"edge18\" class=\"edge\"><title>dssmrecommendernetwork0_lstm0__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm0_reshape12</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M7458.27,-7008.82C7311.75,-6995.2 7097.72,-6973.04 6912,-6945 6908.96,-6944.54 6905.88,-6944.06 6902.78,-6943.57\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"7468.26,-7009.75 7457.89,-7013.31 7463.28,-7009.29 7458.3,-7008.83 7458.3,-7008.83 7458.3,-7008.83 7463.28,-7009.29 7458.72,-7004.34 7468.26,-7009.75 7468.26,-7009.75\"/>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm0__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm0_reshape13 -->\n",
       "<g id=\"edge19\" class=\"edge\"><title>dssmrecommendernetwork0_lstm0__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm0_reshape13</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M7467.86,-6994.1C7387.26,-6979.49 7289.05,-6961.53 7201,-6945 7197.98,-6944.43 7194.92,-6943.86 7191.83,-6943.27\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"7478.11,-6995.96 7467.46,-6998.6 7473.19,-6995.07 7468.27,-6994.17 7468.27,-6994.17 7468.27,-6994.17 7473.19,-6995.07 7469.07,-6989.75 7478.11,-6995.96 7478.11,-6995.96\"/>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm0__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm0_reshape14 -->\n",
       "<g id=\"edge20\" class=\"edge\"><title>dssmrecommendernetwork0_lstm0__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm0_reshape14</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M7548.47,-6992.33C7507.92,-6977.32 7459.88,-6959.54 7420.67,-6945.02\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"7558.07,-6995.89 7547.13,-6996.63 7553.38,-6994.15 7548.69,-6992.41 7548.69,-6992.41 7548.69,-6992.41 7553.38,-6994.15 7550.25,-6988.19 7558.07,-6995.89 7558.07,-6995.89\"/>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm0__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm0_reshape15 -->\n",
       "<g id=\"edge21\" class=\"edge\"><title>dssmrecommendernetwork0_lstm0__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm0_reshape15</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M7634,-6985.58C7634,-6972.28 7634,-6957.63 7634,-6945.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"7634,-6995.89 7629.5,-6985.89 7634,-6990.89 7634,-6985.89 7634,-6985.89 7634,-6985.89 7634,-6990.89 7638.5,-6985.89 7634,-6995.89 7634,-6995.89\"/>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm0_dssmrecommendernetwork0_lstm0_h0_0 -->\n",
       "<g id=\"node25\" class=\"node\"><title>dssmrecommendernetwork0_lstm0_dssmrecommendernetwork0_lstm0_h0_0</title>\n",
       "<polygon fill=\"#fccde5\" stroke=\"black\" points=\"8260.5,-7054 7817.5,-7054 7817.5,-6996 8260.5,-6996 8260.5,-7054\"/>\n",
       "<text text-anchor=\"middle\" x=\"8039\" y=\"-7021.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_lstm0_dssmrecommendernetwork0_lstm0_h0_0</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm0_dssmrecommendernetwork0_lstm0_h0_1 -->\n",
       "<g id=\"node26\" class=\"node\"><title>dssmrecommendernetwork0_lstm0_dssmrecommendernetwork0_lstm0_h0_1</title>\n",
       "<polygon fill=\"#fccde5\" stroke=\"black\" points=\"6406.5,-7054 5963.5,-7054 5963.5,-6996 6406.5,-6996 6406.5,-7054\"/>\n",
       "<text text-anchor=\"middle\" x=\"6185\" y=\"-7021.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_lstm0_dssmrecommendernetwork0_lstm0_h0_1</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm0_rnn0 -->\n",
       "<g id=\"node27\" class=\"node\"><title>dssmrecommendernetwork0_lstm0_rnn0</title>\n",
       "<polygon fill=\"#fccde5\" stroke=\"black\" points=\"6663.5,-7163 6422.5,-7163 6422.5,-7105 6663.5,-7105 6663.5,-7163\"/>\n",
       "<text text-anchor=\"middle\" x=\"6543\" y=\"-7130.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_lstm0_rnn0</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm0_rnn0&#45;&gt;dssmrecommendernetwork0_transpose0 -->\n",
       "<g id=\"edge22\" class=\"edge\"><title>dssmrecommendernetwork0_lstm0_rnn0&#45;&gt;dssmrecommendernetwork0_transpose0</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M6543,-7094.58C6543,-7081.28 6543,-7066.63 6543,-7054.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"6543,-7104.89 6538.5,-7094.89 6543,-7099.89 6543,-7094.89 6543,-7094.89 6543,-7094.89 6543,-7099.89 6547.5,-7094.89 6543,-7104.89 6543,-7104.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"6560\" y=\"-7075.8\" font-family=\"Times,serif\" font-size=\"14.00\">1x128</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm0_rnn0&#45;&gt;dssmrecommendernetwork0_lstm0__rnn_param_concat0 -->\n",
       "<g id=\"edge23\" class=\"edge\"><title>dssmrecommendernetwork0_lstm0_rnn0&#45;&gt;dssmrecommendernetwork0_lstm0__rnn_param_concat0</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M6673.87,-7120.16C6872.73,-7100.66 7250.81,-7063.58 7468.48,-7042.23\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"6663.66,-7121.17 6673.18,-7115.71 6668.64,-7120.68 6673.61,-7120.19 6673.61,-7120.19 6673.61,-7120.19 6668.64,-7120.68 6674.05,-7124.67 6663.66,-7121.17 6663.66,-7121.17\"/>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm0_rnn0&#45;&gt;dssmrecommendernetwork0_lstm0_dssmrecommendernetwork0_lstm0_h0_0 -->\n",
       "<g id=\"edge24\" class=\"edge\"><title>dssmrecommendernetwork0_lstm0_rnn0&#45;&gt;dssmrecommendernetwork0_lstm0_dssmrecommendernetwork0_lstm0_h0_0</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M6673.7,-7127.38C6903.6,-7116.94 7395.2,-7092.06 7809,-7054 7811.8,-7053.74 7814.63,-7053.48 7817.46,-7053.21\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"6663.63,-7127.84 6673.41,-7122.89 6668.62,-7127.61 6673.62,-7127.39 6673.62,-7127.39 6673.62,-7127.39 6668.62,-7127.61 6673.82,-7131.88 6663.63,-7127.84 6663.63,-7127.84\"/>\n",
       "<text text-anchor=\"middle\" x=\"7584\" y=\"-7075.8\" font-family=\"Times,serif\" font-size=\"14.00\">1x128</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm0_rnn0&#45;&gt;dssmrecommendernetwork0_lstm0_dssmrecommendernetwork0_lstm0_h0_1 -->\n",
       "<g id=\"edge25\" class=\"edge\"><title>dssmrecommendernetwork0_lstm0_rnn0&#45;&gt;dssmrecommendernetwork0_lstm0_dssmrecommendernetwork0_lstm0_h0_1</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M6439.27,-7102C6388.57,-7086.84 6328.03,-7068.75 6278.74,-7054.02\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"6448.94,-7104.89 6438.07,-7106.33 6444.15,-7103.46 6439.36,-7102.02 6439.36,-7102.02 6439.36,-7102.02 6444.15,-7103.46 6440.65,-7097.71 6448.94,-7104.89 6448.94,-7104.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"6403\" y=\"-7075.8\" font-family=\"Times,serif\" font-size=\"14.00\">1x128</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_mean0 -->\n",
       "<g id=\"node28\" class=\"node\"><title>dssmrecommendernetwork0_mean0</title>\n",
       "<polygon fill=\"#fccde5\" stroke=\"black\" points=\"6650.5,-7272 6435.5,-7272 6435.5,-7214 6650.5,-7214 6650.5,-7272\"/>\n",
       "<text text-anchor=\"middle\" x=\"6543\" y=\"-7239.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_mean0</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_mean0&#45;&gt;dssmrecommendernetwork0_lstm0_rnn0 -->\n",
       "<g id=\"edge26\" class=\"edge\"><title>dssmrecommendernetwork0_mean0&#45;&gt;dssmrecommendernetwork0_lstm0_rnn0</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M6543,-7203.58C6543,-7190.28 6543,-7175.63 6543,-7163.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"6543,-7213.89 6538.5,-7203.89 6543,-7208.89 6543,-7203.89 6543,-7203.89 6543,-7203.89 6543,-7208.89 6547.5,-7203.89 6543,-7213.89 6543,-7213.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"6560\" y=\"-7184.8\" font-family=\"Times,serif\" font-size=\"14.00\">1x256</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_dense1_fwd -->\n",
       "<g id=\"node29\" class=\"node\"><title>dssmrecommendernetwork0_dense1_fwd</title>\n",
       "<polygon fill=\"#fb8072\" stroke=\"black\" points=\"6523.5,-7381 6420.5,-7381 6420.5,-7323 6523.5,-7323 6523.5,-7381\"/>\n",
       "<text text-anchor=\"middle\" x=\"6472\" y=\"-7355.8\" font-family=\"Times,serif\" font-size=\"14.00\">FullyConnected</text>\n",
       "<text text-anchor=\"middle\" x=\"6472\" y=\"-7340.8\" font-family=\"Times,serif\" font-size=\"14.00\">128</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_dense1_fwd&#45;&gt;dssmrecommendernetwork0_mean0 -->\n",
       "<g id=\"edge27\" class=\"edge\"><title>dssmrecommendernetwork0_dense1_fwd&#45;&gt;dssmrecommendernetwork0_mean0</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M6496.19,-7314.55C6505.35,-7300.74 6515.63,-7285.24 6524.22,-7272.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"6490.65,-7322.89 6492.43,-7312.07 6493.42,-7318.72 6496.18,-7314.55 6496.18,-7314.55 6496.18,-7314.55 6493.42,-7318.72 6499.93,-7317.04 6490.65,-7322.89 6490.65,-7322.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"6521.5\" y=\"-7293.8\" font-family=\"Times,serif\" font-size=\"14.00\">256</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_dense1_relu_fwd -->\n",
       "<g id=\"node30\" class=\"node\"><title>dssmrecommendernetwork0_dense1_relu_fwd</title>\n",
       "<polygon fill=\"#ffffb3\" stroke=\"black\" points=\"6443,-7490 6349,-7490 6349,-7432 6443,-7432 6443,-7490\"/>\n",
       "<text text-anchor=\"middle\" x=\"6396\" y=\"-7464.8\" font-family=\"Times,serif\" font-size=\"14.00\">Activation</text>\n",
       "<text text-anchor=\"middle\" x=\"6396\" y=\"-7449.8\" font-family=\"Times,serif\" font-size=\"14.00\">relu</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_dense1_relu_fwd&#45;&gt;dssmrecommendernetwork0_dense1_fwd -->\n",
       "<g id=\"edge28\" class=\"edge\"><title>dssmrecommendernetwork0_dense1_relu_fwd&#45;&gt;dssmrecommendernetwork0_dense1_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M6421.89,-7423.55C6431.7,-7409.74 6442.71,-7394.24 6451.9,-7381.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"6415.97,-7431.89 6418.09,-7421.13 6418.86,-7427.81 6421.76,-7423.73 6421.76,-7423.73 6421.76,-7423.73 6418.86,-7427.81 6425.43,-7426.34 6415.97,-7431.89 6415.97,-7431.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"6449.5\" y=\"-7402.8\" font-family=\"Times,serif\" font-size=\"14.00\">128</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_concat0 -->\n",
       "<g id=\"node31\" class=\"node\"><title>dssmrecommendernetwork0_concat0</title>\n",
       "<polygon fill=\"#fdb462\" stroke=\"black\" points=\"6390.5,-7599 6169.5,-7599 6169.5,-7541 6390.5,-7541 6390.5,-7599\"/>\n",
       "<text text-anchor=\"middle\" x=\"6280\" y=\"-7566.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_concat0</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_concat0&#45;&gt;dssmrecommendernetwork0_dense0_relu_fwd -->\n",
       "<g id=\"edge29\" class=\"edge\"><title>dssmrecommendernetwork0_concat0&#45;&gt;dssmrecommendernetwork0_dense0_relu_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M6280,-7530.58C6280,-7517.28 6280,-7502.63 6280,-7490.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"6280,-7540.89 6275.5,-7530.89 6280,-7535.89 6280,-7530.89 6280,-7530.89 6280,-7530.89 6280,-7535.89 6284.5,-7530.89 6280,-7540.89 6280,-7540.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"6290.5\" y=\"-7511.8\" font-family=\"Times,serif\" font-size=\"14.00\">128</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_concat0&#45;&gt;dssmrecommendernetwork0_dense1_relu_fwd -->\n",
       "<g id=\"edge30\" class=\"edge\"><title>dssmrecommendernetwork0_concat0&#45;&gt;dssmrecommendernetwork0_dense1_relu_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M6317.83,-7534.1C6333.21,-7519.91 6350.76,-7503.73 6365.32,-7490.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"6310.48,-7540.89 6314.78,-7530.8 6314.15,-7537.5 6317.83,-7534.11 6317.83,-7534.11 6317.83,-7534.11 6314.15,-7537.5 6320.88,-7537.41 6310.48,-7540.89 6310.48,-7540.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"6355.5\" y=\"-7511.8\" font-family=\"Times,serif\" font-size=\"14.00\">128</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_dropout0_fwd -->\n",
       "<g id=\"node32\" class=\"node\"><title>dssmrecommendernetwork0_dropout0_fwd</title>\n",
       "<polygon fill=\"#fccde5\" stroke=\"black\" points=\"6407.5,-7708 6152.5,-7708 6152.5,-7650 6407.5,-7650 6407.5,-7708\"/>\n",
       "<text text-anchor=\"middle\" x=\"6280\" y=\"-7675.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_dropout0_fwd</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_dropout0_fwd&#45;&gt;dssmrecommendernetwork0_concat0 -->\n",
       "<g id=\"edge31\" class=\"edge\"><title>dssmrecommendernetwork0_dropout0_fwd&#45;&gt;dssmrecommendernetwork0_concat0</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M6280,-7639.58C6280,-7626.28 6280,-7611.63 6280,-7599.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"6280,-7649.89 6275.5,-7639.89 6280,-7644.89 6280,-7639.89 6280,-7639.89 6280,-7639.89 6280,-7644.89 6284.5,-7639.89 6280,-7649.89 6280,-7649.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"6290.5\" y=\"-7620.8\" font-family=\"Times,serif\" font-size=\"14.00\">256</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_dense2_fwd -->\n",
       "<g id=\"node33\" class=\"node\"><title>dssmrecommendernetwork0_dense2_fwd</title>\n",
       "<polygon fill=\"#fb8072\" stroke=\"black\" points=\"6327.5,-7817 6224.5,-7817 6224.5,-7759 6327.5,-7759 6327.5,-7817\"/>\n",
       "<text text-anchor=\"middle\" x=\"6276\" y=\"-7791.8\" font-family=\"Times,serif\" font-size=\"14.00\">FullyConnected</text>\n",
       "<text text-anchor=\"middle\" x=\"6276\" y=\"-7776.8\" font-family=\"Times,serif\" font-size=\"14.00\">128</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_dense2_fwd&#45;&gt;dssmrecommendernetwork0_dropout0_fwd -->\n",
       "<g id=\"edge32\" class=\"edge\"><title>dssmrecommendernetwork0_dense2_fwd&#45;&gt;dssmrecommendernetwork0_dropout0_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M6277.44,-7748.58C6277.93,-7735.28 6278.48,-7720.63 6278.94,-7708.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"6277.05,-7758.89 6272.93,-7748.73 6277.24,-7753.89 6277.42,-7748.89 6277.42,-7748.89 6277.42,-7748.89 6277.24,-7753.89 6281.92,-7749.06 6277.05,-7758.89 6277.05,-7758.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"6289.5\" y=\"-7729.8\" font-family=\"Times,serif\" font-size=\"14.00\">256</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_dense2_relu_fwd -->\n",
       "<g id=\"node34\" class=\"node\"><title>dssmrecommendernetwork0_dense2_relu_fwd</title>\n",
       "<polygon fill=\"#ffffb3\" stroke=\"black\" points=\"6262,-7926 6168,-7926 6168,-7868 6262,-7868 6262,-7926\"/>\n",
       "<text text-anchor=\"middle\" x=\"6215\" y=\"-7900.8\" font-family=\"Times,serif\" font-size=\"14.00\">Activation</text>\n",
       "<text text-anchor=\"middle\" x=\"6215\" y=\"-7885.8\" font-family=\"Times,serif\" font-size=\"14.00\">relu</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_dense2_relu_fwd&#45;&gt;dssmrecommendernetwork0_dense2_fwd -->\n",
       "<g id=\"edge33\" class=\"edge\"><title>dssmrecommendernetwork0_dense2_relu_fwd&#45;&gt;dssmrecommendernetwork0_dense2_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M6236,-7859.16C6243.82,-7845.45 6252.56,-7830.12 6259.87,-7817.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"6231.03,-7867.89 6232.07,-7856.97 6233.5,-7863.54 6235.98,-7859.2 6235.98,-7859.2 6235.98,-7859.2 6233.5,-7863.54 6239.89,-7861.43 6231.03,-7867.89 6231.03,-7867.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"6260.5\" y=\"-7838.8\" font-family=\"Times,serif\" font-size=\"14.00\">128</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_expand_dims0 -->\n",
       "<g id=\"node35\" class=\"node\"><title>dssmrecommendernetwork0_expand_dims0</title>\n",
       "<polygon fill=\"#fccde5\" stroke=\"black\" points=\"5753,-8035 5495,-8035 5495,-7977 5753,-7977 5753,-8035\"/>\n",
       "<text text-anchor=\"middle\" x=\"5624\" y=\"-8002.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_expand_dims0</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_expand_dims0&#45;&gt;dssmrecommendernetwork0_dense2_relu_fwd -->\n",
       "<g id=\"edge34\" class=\"edge\"><title>dssmrecommendernetwork0_expand_dims0&#45;&gt;dssmrecommendernetwork0_dense2_relu_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5763.4,-7979.76C5893.78,-7956.16 6081.01,-7922.26 6167.67,-7906.57\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5753.33,-7981.58 5762.37,-7975.37 5758.25,-7980.69 5763.17,-7979.8 5763.17,-7979.8 5763.17,-7979.8 5758.25,-7980.69 5763.97,-7984.23 5753.33,-7981.58 5753.33,-7981.58\"/>\n",
       "<text text-anchor=\"middle\" x=\"5965.5\" y=\"-7947.8\" font-family=\"Times,serif\" font-size=\"14.00\">128</text>\n",
       "</g>\n",
       "<!-- title -->\n",
       "<g id=\"node36\" class=\"node\"><title>title</title>\n",
       "<ellipse fill=\"#8dd3c7\" stroke=\"black\" cx=\"137\" cy=\"-6807\" rx=\"47\" ry=\"29\"/>\n",
       "<text text-anchor=\"middle\" x=\"137\" y=\"-6803.3\" font-family=\"Times,serif\" font-size=\"14.00\">title</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_embedding2_fwd -->\n",
       "<g id=\"node37\" class=\"node\"><title>dssmrecommendernetwork0_embedding2_fwd</title>\n",
       "<polygon fill=\"#fccde5\" stroke=\"black\" points=\"274,-6945 0,-6945 0,-6887 274,-6887 274,-6945\"/>\n",
       "<text text-anchor=\"middle\" x=\"137\" y=\"-6912.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_embedding2_fwd</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_embedding2_fwd&#45;&gt;title -->\n",
       "<g id=\"edge35\" class=\"edge\"><title>dssmrecommendernetwork0_embedding2_fwd&#45;&gt;title</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M137,-6876.58C137,-6863.28 137,-6848.63 137,-6836.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"137,-6886.89 132.5,-6876.89 137,-6881.89 137,-6876.89 137,-6876.89 137,-6876.89 137,-6881.89 141.5,-6876.89 137,-6886.89 137,-6886.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"144\" y=\"-6857.8\" font-family=\"Times,serif\" font-size=\"14.00\">30</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_transpose1 -->\n",
       "<g id=\"node38\" class=\"node\"><title>dssmrecommendernetwork0_transpose1</title>\n",
       "<polygon fill=\"#fccde5\" stroke=\"black\" points=\"2391,-7054 2155,-7054 2155,-6996 2391,-6996 2391,-7054\"/>\n",
       "<text text-anchor=\"middle\" x=\"2273\" y=\"-7021.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_transpose1</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_transpose1&#45;&gt;dssmrecommendernetwork0_embedding2_fwd -->\n",
       "<g id=\"edge36\" class=\"edge\"><title>dssmrecommendernetwork0_transpose1&#45;&gt;dssmrecommendernetwork0_embedding2_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M2145.31,-6996.03C2145.2,-6996.02 2145.1,-6996.01 2145,-6996 1948.91,-6973.8 564.584,-7004.29 369,-6978 319.882,-6971.4 266.298,-6957.75 223.013,-6945.04\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"2154.94,-6997.25 2144.45,-7000.46 2149.97,-6996.62 2145.01,-6996 2145.01,-6996 2145.01,-6996 2149.97,-6996.62 2145.58,-6991.53 2154.94,-6997.25 2154.94,-6997.25\"/>\n",
       "<text text-anchor=\"middle\" x=\"389.5\" y=\"-6966.8\" font-family=\"Times,serif\" font-size=\"14.00\">30x128</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm1_reshape0 -->\n",
       "<g id=\"node39\" class=\"node\"><title>dssmrecommendernetwork0_lstm1_reshape0</title>\n",
       "<polygon fill=\"#fdb462\" stroke=\"black\" points=\"3137,-6945 2873,-6945 2873,-6887 3137,-6887 3137,-6945\"/>\n",
       "<text text-anchor=\"middle\" x=\"3005\" y=\"-6912.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_lstm1_reshape0</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm1_reshape1 -->\n",
       "<g id=\"node40\" class=\"node\"><title>dssmrecommendernetwork0_lstm1_reshape1</title>\n",
       "<polygon fill=\"#fdb462\" stroke=\"black\" points=\"3419,-6945 3155,-6945 3155,-6887 3419,-6887 3419,-6945\"/>\n",
       "<text text-anchor=\"middle\" x=\"3287\" y=\"-6912.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_lstm1_reshape1</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm1_reshape2 -->\n",
       "<g id=\"node41\" class=\"node\"><title>dssmrecommendernetwork0_lstm1_reshape2</title>\n",
       "<polygon fill=\"#fdb462\" stroke=\"black\" points=\"3701,-6945 3437,-6945 3437,-6887 3701,-6887 3701,-6945\"/>\n",
       "<text text-anchor=\"middle\" x=\"3569\" y=\"-6912.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_lstm1_reshape2</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm1_reshape3 -->\n",
       "<g id=\"node42\" class=\"node\"><title>dssmrecommendernetwork0_lstm1_reshape3</title>\n",
       "<polygon fill=\"#fdb462\" stroke=\"black\" points=\"3983,-6945 3719,-6945 3719,-6887 3983,-6887 3983,-6945\"/>\n",
       "<text text-anchor=\"middle\" x=\"3851\" y=\"-6912.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_lstm1_reshape3</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm1_reshape4 -->\n",
       "<g id=\"node43\" class=\"node\"><title>dssmrecommendernetwork0_lstm1_reshape4</title>\n",
       "<polygon fill=\"#fdb462\" stroke=\"black\" points=\"4265,-6945 4001,-6945 4001,-6887 4265,-6887 4265,-6945\"/>\n",
       "<text text-anchor=\"middle\" x=\"4133\" y=\"-6912.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_lstm1_reshape4</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm1_reshape5 -->\n",
       "<g id=\"node44\" class=\"node\"><title>dssmrecommendernetwork0_lstm1_reshape5</title>\n",
       "<polygon fill=\"#fdb462\" stroke=\"black\" points=\"4547,-6945 4283,-6945 4283,-6887 4547,-6887 4547,-6945\"/>\n",
       "<text text-anchor=\"middle\" x=\"4415\" y=\"-6912.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_lstm1_reshape5</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm1_reshape6 -->\n",
       "<g id=\"node45\" class=\"node\"><title>dssmrecommendernetwork0_lstm1_reshape6</title>\n",
       "<polygon fill=\"#fdb462\" stroke=\"black\" points=\"4829,-6945 4565,-6945 4565,-6887 4829,-6887 4829,-6945\"/>\n",
       "<text text-anchor=\"middle\" x=\"4697\" y=\"-6912.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_lstm1_reshape6</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm1_reshape7 -->\n",
       "<g id=\"node46\" class=\"node\"><title>dssmrecommendernetwork0_lstm1_reshape7</title>\n",
       "<polygon fill=\"#fdb462\" stroke=\"black\" points=\"556,-6945 292,-6945 292,-6887 556,-6887 556,-6945\"/>\n",
       "<text text-anchor=\"middle\" x=\"424\" y=\"-6912.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_lstm1_reshape7</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm1_reshape8 -->\n",
       "<g id=\"node47\" class=\"node\"><title>dssmrecommendernetwork0_lstm1_reshape8</title>\n",
       "<polygon fill=\"#fdb462\" stroke=\"black\" points=\"838,-6945 574,-6945 574,-6887 838,-6887 838,-6945\"/>\n",
       "<text text-anchor=\"middle\" x=\"706\" y=\"-6912.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_lstm1_reshape8</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm1_reshape9 -->\n",
       "<g id=\"node48\" class=\"node\"><title>dssmrecommendernetwork0_lstm1_reshape9</title>\n",
       "<polygon fill=\"#fdb462\" stroke=\"black\" points=\"1120,-6945 856,-6945 856,-6887 1120,-6887 1120,-6945\"/>\n",
       "<text text-anchor=\"middle\" x=\"988\" y=\"-6912.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_lstm1_reshape9</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm1_reshape10 -->\n",
       "<g id=\"node49\" class=\"node\"><title>dssmrecommendernetwork0_lstm1_reshape10</title>\n",
       "<polygon fill=\"#fdb462\" stroke=\"black\" points=\"1409.5,-6945 1138.5,-6945 1138.5,-6887 1409.5,-6887 1409.5,-6945\"/>\n",
       "<text text-anchor=\"middle\" x=\"1274\" y=\"-6912.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_lstm1_reshape10</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm1_reshape11 -->\n",
       "<g id=\"node50\" class=\"node\"><title>dssmrecommendernetwork0_lstm1_reshape11</title>\n",
       "<polygon fill=\"#fdb462\" stroke=\"black\" points=\"1698.5,-6945 1427.5,-6945 1427.5,-6887 1698.5,-6887 1698.5,-6945\"/>\n",
       "<text text-anchor=\"middle\" x=\"1563\" y=\"-6912.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_lstm1_reshape11</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm1_reshape12 -->\n",
       "<g id=\"node51\" class=\"node\"><title>dssmrecommendernetwork0_lstm1_reshape12</title>\n",
       "<polygon fill=\"#fdb462\" stroke=\"black\" points=\"1987.5,-6945 1716.5,-6945 1716.5,-6887 1987.5,-6887 1987.5,-6945\"/>\n",
       "<text text-anchor=\"middle\" x=\"1852\" y=\"-6912.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_lstm1_reshape12</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm1_reshape13 -->\n",
       "<g id=\"node52\" class=\"node\"><title>dssmrecommendernetwork0_lstm1_reshape13</title>\n",
       "<polygon fill=\"#fdb462\" stroke=\"black\" points=\"2276.5,-6945 2005.5,-6945 2005.5,-6887 2276.5,-6887 2276.5,-6945\"/>\n",
       "<text text-anchor=\"middle\" x=\"2141\" y=\"-6912.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_lstm1_reshape13</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm1_reshape14 -->\n",
       "<g id=\"node53\" class=\"node\"><title>dssmrecommendernetwork0_lstm1_reshape14</title>\n",
       "<polygon fill=\"#fdb462\" stroke=\"black\" points=\"2565.5,-6945 2294.5,-6945 2294.5,-6887 2565.5,-6887 2565.5,-6945\"/>\n",
       "<text text-anchor=\"middle\" x=\"2430\" y=\"-6912.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_lstm1_reshape14</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm1_reshape15 -->\n",
       "<g id=\"node54\" class=\"node\"><title>dssmrecommendernetwork0_lstm1_reshape15</title>\n",
       "<polygon fill=\"#fdb462\" stroke=\"black\" points=\"2854.5,-6945 2583.5,-6945 2583.5,-6887 2854.5,-6887 2854.5,-6945\"/>\n",
       "<text text-anchor=\"middle\" x=\"2719\" y=\"-6912.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_lstm1_reshape15</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm1__rnn_param_concat0 -->\n",
       "<g id=\"node55\" class=\"node\"><title>dssmrecommendernetwork0_lstm1__rnn_param_concat0</title>\n",
       "<polygon fill=\"#fccde5\" stroke=\"black\" points=\"2740.5,-7054 2409.5,-7054 2409.5,-6996 2740.5,-6996 2740.5,-7054\"/>\n",
       "<text text-anchor=\"middle\" x=\"2575\" y=\"-7021.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_lstm1__rnn_param_concat0</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm1__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm1_reshape0 -->\n",
       "<g id=\"edge37\" class=\"edge\"><title>dssmrecommendernetwork0_lstm1__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm1_reshape0</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M2697.42,-6993.54C2758.7,-6978.29 2832.38,-6959.95 2892.26,-6945.05\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"2687.7,-6995.96 2696.31,-6989.18 2692.55,-6994.75 2697.4,-6993.54 2697.4,-6993.54 2697.4,-6993.54 2692.55,-6994.75 2698.49,-6997.91 2687.7,-6995.96 2687.7,-6995.96\"/>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm1__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm1_reshape1 -->\n",
       "<g id=\"edge38\" class=\"edge\"><title>dssmrecommendernetwork0_lstm1__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm1_reshape1</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M2750.88,-6995.75C2926.79,-6970.64 2973.69,-6973.14 3146,-6945 3148.96,-6944.52 3151.94,-6944.02 3154.96,-6943.51\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"2740.76,-6997.2 2750.02,-6991.33 2745.71,-6996.49 2750.66,-6995.78 2750.66,-6995.78 2750.66,-6995.78 2745.71,-6996.49 2751.3,-7000.23 2740.76,-6997.2 2740.76,-6997.2\"/>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm1__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm1_reshape2 -->\n",
       "<g id=\"edge39\" class=\"edge\"><title>dssmrecommendernetwork0_lstm1__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm1_reshape2</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M2750.76,-6995.86C2914.72,-6977.77 3281.15,-6965.02 3428,-6945 3430.97,-6944.6 3433.97,-6944.17 3436.99,-6943.72\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"2740.73,-6997 2750.16,-6991.4 2745.7,-6996.43 2750.67,-6995.87 2750.67,-6995.87 2750.67,-6995.87 2745.7,-6996.43 2751.18,-7000.34 2740.73,-6997 2740.73,-6997\"/>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm1__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm1_reshape3 -->\n",
       "<g id=\"edge40\" class=\"edge\"><title>dssmrecommendernetwork0_lstm1__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm1_reshape3</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M2751.12,-6995.83C2914.07,-6979.24 2957.39,-6986.39 3118,-6978 3381.16,-6964.25 3448.56,-6978.08 3710,-6945 3712.97,-6944.62 3715.97,-6944.22 3719,-6943.8\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"2740.72,-6996.9 2750.21,-6991.4 2745.69,-6996.39 2750.67,-6995.87 2750.67,-6995.87 2750.67,-6995.87 2745.69,-6996.39 2751.13,-7000.35 2740.72,-6996.9 2740.72,-6996.9\"/>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm1__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm1_reshape4 -->\n",
       "<g id=\"edge41\" class=\"edge\"><title>dssmrecommendernetwork0_lstm1__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm1_reshape4</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M2750.85,-6995.88C3010.99,-6971.62 3079.07,-6988.44 3337,-6978 3628.24,-6966.21 3702.73,-6980.82 3992,-6945 3994.85,-6944.65 3997.73,-6944.27 4000.62,-6943.87\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"2740.71,-6996.83 2750.25,-6991.41 2745.69,-6996.36 2750.67,-6995.89 2750.67,-6995.89 2750.67,-6995.89 2745.69,-6996.36 2751.09,-7000.37 2740.71,-6996.83 2740.71,-6996.83\"/>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm1__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm1_reshape5 -->\n",
       "<g id=\"edge42\" class=\"edge\"><title>dssmrecommendernetwork0_lstm1__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm1_reshape5</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M2750.68,-6995.9C3123.03,-6962.72 3219.65,-6990.89 3590,-6978 3894.17,-6967.41 3971.91,-6982.08 4274,-6945 4276.85,-6944.65 4279.73,-6944.28 4282.62,-6943.88\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"2740.71,-6996.8 2750.27,-6991.42 2745.69,-6996.35 2750.67,-6995.9 2750.67,-6995.9 2750.67,-6995.9 2745.69,-6996.35 2751.07,-7000.38 2740.71,-6996.8 2740.71,-6996.8\"/>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm1__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm1_reshape6 -->\n",
       "<g id=\"edge43\" class=\"edge\"><title>dssmrecommendernetwork0_lstm1__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm1_reshape6</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M2750.9,-6995.91C3009.79,-6974.73 3611.77,-6985.66 3854,-6978 4166.19,-6968.12 4245.96,-6982.86 4556,-6945 4558.85,-6944.65 4561.73,-6944.28 4564.62,-6943.88\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"2740.71,-6996.78 2750.29,-6991.45 2745.69,-6996.35 2750.67,-6995.93 2750.67,-6995.93 2750.67,-6995.93 2745.69,-6996.35 2751.05,-7000.41 2740.71,-6996.78 2740.71,-6996.78\"/>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm1__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm1_reshape7 -->\n",
       "<g id=\"edge44\" class=\"edge\"><title>dssmrecommendernetwork0_lstm1__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm1_reshape7</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M2398.85,-6995.99C2074.02,-6969.88 1309.84,-6991.52 1003,-6978 807.971,-6969.4 758.426,-6971.39 565,-6945 562.033,-6944.6 559.034,-6944.17 556.013,-6943.72\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"2409.27,-6996.85 2398.93,-7000.51 2404.29,-6996.44 2399.31,-6996.03 2399.31,-6996.03 2399.31,-6996.03 2404.29,-6996.44 2399.68,-6991.54 2409.27,-6996.85 2409.27,-6996.85\"/>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm1__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm1_reshape8 -->\n",
       "<g id=\"edge45\" class=\"edge\"><title>dssmrecommendernetwork0_lstm1__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm1_reshape8</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M2398.98,-6996C2137.55,-6974.81 1531.63,-6989.08 1288,-6978 1091.65,-6969.07 1041.75,-6971.52 847,-6945 844.033,-6944.6 841.033,-6944.17 838.012,-6943.72\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"2409.27,-6996.87 2398.93,-7000.51 2404.29,-6996.45 2399.31,-6996.03 2399.31,-6996.03 2399.31,-6996.03 2404.29,-6996.45 2399.68,-6991.54 2409.27,-6996.87 2409.27,-6996.87\"/>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm1__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm1_reshape9 -->\n",
       "<g id=\"edge46\" class=\"edge\"><title>dssmrecommendernetwork0_lstm1__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm1_reshape9</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M2399.22,-6995.99C2034.36,-6963.64 1939.71,-6995.24 1578,-6978 1378.13,-6968.47 1327.28,-6971.87 1129,-6945 1126.03,-6944.6 1123.03,-6944.17 1120.01,-6943.73\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"2409.27,-6996.89 2398.91,-7000.48 2404.29,-6996.45 2399.31,-6996 2399.31,-6996 2399.31,-6996 2404.29,-6996.45 2399.71,-6991.52 2409.27,-6996.89 2409.27,-6996.89\"/>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm1__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm1_reshape10 -->\n",
       "<g id=\"edge47\" class=\"edge\"><title>dssmrecommendernetwork0_lstm1__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm1_reshape10</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M2399.01,-6995.97C2163.67,-6973.82 2102.02,-6990.41 1870,-6978 1668.86,-6967.25 1617.66,-6971.6 1418,-6945 1415.22,-6944.63 1412.42,-6944.24 1409.59,-6943.83\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"2409.26,-6996.94 2398.88,-7000.47 2404.29,-6996.47 2399.31,-6995.99 2399.31,-6995.99 2399.31,-6995.99 2404.29,-6996.47 2399.74,-6991.51 2409.26,-6996.94 2409.26,-6996.94\"/>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm1__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm1_reshape11 -->\n",
       "<g id=\"edge48\" class=\"edge\"><title>dssmrecommendernetwork0_lstm1__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm1_reshape11</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M2399.1,-6995.95C2276.58,-6982.54 2243.94,-6986.59 2125,-6978 1939.13,-6964.58 1891.65,-6970.16 1707,-6945 1704.22,-6944.62 1701.42,-6944.22 1698.6,-6943.81\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"2409.25,-6997.08 2398.81,-7000.45 2404.28,-6996.53 2399.31,-6995.97 2399.31,-6995.97 2399.31,-6995.97 2404.28,-6996.53 2399.81,-6991.5 2409.25,-6997.08 2409.25,-6997.08\"/>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm1__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm1_reshape12 -->\n",
       "<g id=\"edge49\" class=\"edge\"><title>dssmrecommendernetwork0_lstm1__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm1_reshape12</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M2399.15,-6995.9C2219.13,-6970.47 2171.47,-6973.1 1996,-6945 1993.23,-6944.56 1990.44,-6944.1 1987.62,-6943.63\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"2409.22,-6997.33 2398.68,-7000.38 2404.27,-6996.63 2399.32,-6995.92 2399.32,-6995.92 2399.32,-6995.92 2404.27,-6996.63 2399.95,-6991.47 2409.22,-6997.33 2409.22,-6997.33\"/>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm1__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm1_reshape13 -->\n",
       "<g id=\"edge50\" class=\"edge\"><title>dssmrecommendernetwork0_lstm1__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm1_reshape13</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M2451.44,-6993.54C2389.59,-6978.29 2315.23,-6959.95 2254.79,-6945.05\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"2461.26,-6995.96 2450.47,-6997.93 2456.4,-6994.76 2451.55,-6993.56 2451.55,-6993.56 2451.55,-6993.56 2456.4,-6994.76 2452.62,-6989.19 2461.26,-6995.96 2461.26,-6995.96\"/>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm1__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm1_reshape14 -->\n",
       "<g id=\"edge51\" class=\"edge\"><title>dssmrecommendernetwork0_lstm1__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm1_reshape14</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M2528.72,-6989.85C2509.17,-6975.42 2486.67,-6958.82 2468.09,-6945.11\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"2536.9,-6995.89 2526.18,-6993.57 2532.88,-6992.92 2528.86,-6989.95 2528.86,-6989.95 2528.86,-6989.95 2532.88,-6992.92 2531.53,-6986.33 2536.9,-6995.89 2536.9,-6995.89\"/>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm1__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm1_reshape15 -->\n",
       "<g id=\"edge52\" class=\"edge\"><title>dssmrecommendernetwork0_lstm1__rnn_param_concat0&#45;&gt;dssmrecommendernetwork0_lstm1_reshape15</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M2620.93,-6989.87C2640.27,-6975.5 2662.51,-6958.98 2680.92,-6945.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"2612.83,-6995.89 2618.18,-6986.31 2616.85,-6992.9 2620.86,-6989.92 2620.86,-6989.92 2620.86,-6989.92 2616.85,-6992.9 2623.54,-6993.53 2612.83,-6995.89 2612.83,-6995.89\"/>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm1_dssmrecommendernetwork0_lstm1_h0_0 -->\n",
       "<g id=\"node56\" class=\"node\"><title>dssmrecommendernetwork0_lstm1_dssmrecommendernetwork0_lstm1_h0_0</title>\n",
       "<polygon fill=\"#fccde5\" stroke=\"black\" points=\"3201.5,-7054 2758.5,-7054 2758.5,-6996 3201.5,-6996 3201.5,-7054\"/>\n",
       "<text text-anchor=\"middle\" x=\"2980\" y=\"-7021.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_lstm1_dssmrecommendernetwork0_lstm1_h0_0</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm1_dssmrecommendernetwork0_lstm1_h0_1 -->\n",
       "<g id=\"node57\" class=\"node\"><title>dssmrecommendernetwork0_lstm1_dssmrecommendernetwork0_lstm1_h0_1</title>\n",
       "<polygon fill=\"#fccde5\" stroke=\"black\" points=\"2136.5,-7054 1693.5,-7054 1693.5,-6996 2136.5,-6996 2136.5,-7054\"/>\n",
       "<text text-anchor=\"middle\" x=\"1915\" y=\"-7021.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_lstm1_dssmrecommendernetwork0_lstm1_h0_1</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm1_rnn0 -->\n",
       "<g id=\"node58\" class=\"node\"><title>dssmrecommendernetwork0_lstm1_rnn0</title>\n",
       "<polygon fill=\"#fccde5\" stroke=\"black\" points=\"2695.5,-7163 2454.5,-7163 2454.5,-7105 2695.5,-7105 2695.5,-7163\"/>\n",
       "<text text-anchor=\"middle\" x=\"2575\" y=\"-7130.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_lstm1_rnn0</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm1_rnn0&#45;&gt;dssmrecommendernetwork0_transpose1 -->\n",
       "<g id=\"edge53\" class=\"edge\"><title>dssmrecommendernetwork0_lstm1_rnn0&#45;&gt;dssmrecommendernetwork0_transpose1</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M2486.16,-7101.52C2443.67,-7086.47 2393.23,-7068.6 2352.08,-7054.02\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"2495.65,-7104.89 2484.72,-7105.79 2490.94,-7103.22 2486.23,-7101.55 2486.23,-7101.55 2486.23,-7101.55 2490.94,-7103.22 2487.73,-7097.31 2495.65,-7104.89 2495.65,-7104.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"2460\" y=\"-7075.8\" font-family=\"Times,serif\" font-size=\"14.00\">1x128</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm1_rnn0&#45;&gt;dssmrecommendernetwork0_lstm1__rnn_param_concat0 -->\n",
       "<g id=\"edge54\" class=\"edge\"><title>dssmrecommendernetwork0_lstm1_rnn0&#45;&gt;dssmrecommendernetwork0_lstm1__rnn_param_concat0</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M2575,-7094.58C2575,-7081.28 2575,-7066.63 2575,-7054.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"2575,-7104.89 2570.5,-7094.89 2575,-7099.89 2575,-7094.89 2575,-7094.89 2575,-7094.89 2575,-7099.89 2579.5,-7094.89 2575,-7104.89 2575,-7104.89\"/>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm1_rnn0&#45;&gt;dssmrecommendernetwork0_lstm1_dssmrecommendernetwork0_lstm1_h0_0 -->\n",
       "<g id=\"edge55\" class=\"edge\"><title>dssmrecommendernetwork0_lstm1_rnn0&#45;&gt;dssmrecommendernetwork0_lstm1_dssmrecommendernetwork0_lstm1_h0_0</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M2691.02,-7102.35C2748.59,-7087.14 2817.65,-7068.89 2873.82,-7054.05\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"2681.14,-7104.96 2689.66,-7098.05 2685.98,-7103.68 2690.81,-7102.4 2690.81,-7102.4 2690.81,-7102.4 2685.98,-7103.68 2691.96,-7106.75 2681.14,-7104.96 2681.14,-7104.96\"/>\n",
       "<text text-anchor=\"middle\" x=\"2819\" y=\"-7075.8\" font-family=\"Times,serif\" font-size=\"14.00\">1x128</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_lstm1_rnn0&#45;&gt;dssmrecommendernetwork0_lstm1_dssmrecommendernetwork0_lstm1_h0_1 -->\n",
       "<g id=\"edge56\" class=\"edge\"><title>dssmrecommendernetwork0_lstm1_rnn0&#45;&gt;dssmrecommendernetwork0_lstm1_dssmrecommendernetwork0_lstm1_h0_1</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M2444.27,-7111.81C2342.22,-7095.26 2199.52,-7072.13 2088,-7054.05\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"2454.33,-7113.44 2443.74,-7116.28 2449.39,-7112.64 2444.46,-7111.84 2444.46,-7111.84 2444.46,-7111.84 2449.39,-7112.64 2445.18,-7107.39 2454.33,-7113.44 2454.33,-7113.44\"/>\n",
       "<text text-anchor=\"middle\" x=\"2302\" y=\"-7075.8\" font-family=\"Times,serif\" font-size=\"14.00\">1x128</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_mean1 -->\n",
       "<g id=\"node59\" class=\"node\"><title>dssmrecommendernetwork0_mean1</title>\n",
       "<polygon fill=\"#fccde5\" stroke=\"black\" points=\"4330.5,-7272 4115.5,-7272 4115.5,-7214 4330.5,-7214 4330.5,-7272\"/>\n",
       "<text text-anchor=\"middle\" x=\"4223\" y=\"-7239.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_mean1</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_mean1&#45;&gt;dssmrecommendernetwork0_lstm1_rnn0 -->\n",
       "<g id=\"edge57\" class=\"edge\"><title>dssmrecommendernetwork0_mean1&#45;&gt;dssmrecommendernetwork0_lstm1_rnn0</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M4105.07,-7234.34C3802.54,-7214.7 3001.26,-7162.68 2695.7,-7142.84\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"4115.19,-7235 4104.92,-7238.84 4110.2,-7234.68 4105.21,-7234.35 4105.21,-7234.35 4105.21,-7234.35 4110.2,-7234.68 4105.5,-7229.86 4115.19,-7235 4115.19,-7235\"/>\n",
       "<text text-anchor=\"middle\" x=\"3515\" y=\"-7184.8\" font-family=\"Times,serif\" font-size=\"14.00\">1x256</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_dense3_fwd -->\n",
       "<g id=\"node60\" class=\"node\"><title>dssmrecommendernetwork0_dense3_fwd</title>\n",
       "<polygon fill=\"#fb8072\" stroke=\"black\" points=\"4859.5,-7381 4756.5,-7381 4756.5,-7323 4859.5,-7323 4859.5,-7381\"/>\n",
       "<text text-anchor=\"middle\" x=\"4808\" y=\"-7355.8\" font-family=\"Times,serif\" font-size=\"14.00\">FullyConnected</text>\n",
       "<text text-anchor=\"middle\" x=\"4808\" y=\"-7340.8\" font-family=\"Times,serif\" font-size=\"14.00\">128</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_dense3_fwd&#45;&gt;dssmrecommendernetwork0_mean1 -->\n",
       "<g id=\"edge58\" class=\"edge\"><title>dssmrecommendernetwork0_dense3_fwd&#45;&gt;dssmrecommendernetwork0_mean1</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M4746.22,-7339.7C4647.46,-7321.64 4452.75,-7286.02 4330.71,-7263.7\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"4756.34,-7341.55 4745.7,-7344.18 4751.42,-7340.65 4746.5,-7339.75 4746.5,-7339.75 4746.5,-7339.75 4751.42,-7340.65 4747.31,-7335.33 4756.34,-7341.55 4756.34,-7341.55\"/>\n",
       "<text text-anchor=\"middle\" x=\"4561.5\" y=\"-7293.8\" font-family=\"Times,serif\" font-size=\"14.00\">256</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_dense3_relu_fwd -->\n",
       "<g id=\"node61\" class=\"node\"><title>dssmrecommendernetwork0_dense3_relu_fwd</title>\n",
       "<polygon fill=\"#ffffb3\" stroke=\"black\" points=\"4944,-7490 4850,-7490 4850,-7432 4944,-7432 4944,-7490\"/>\n",
       "<text text-anchor=\"middle\" x=\"4897\" y=\"-7464.8\" font-family=\"Times,serif\" font-size=\"14.00\">Activation</text>\n",
       "<text text-anchor=\"middle\" x=\"4897\" y=\"-7449.8\" font-family=\"Times,serif\" font-size=\"14.00\">relu</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_dense3_relu_fwd&#45;&gt;dssmrecommendernetwork0_dense3_fwd -->\n",
       "<g id=\"edge59\" class=\"edge\"><title>dssmrecommendernetwork0_dense3_relu_fwd&#45;&gt;dssmrecommendernetwork0_dense3_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M4867,-7423.94C4855.44,-7410.03 4842.41,-7394.36 4831.54,-7381.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"4873.62,-7431.89 4863.76,-7427.08 4870.42,-7428.04 4867.22,-7424.2 4867.22,-7424.2 4867.22,-7424.2 4870.42,-7428.04 4870.68,-7421.32 4873.62,-7431.89 4873.62,-7431.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"4868.5\" y=\"-7402.8\" font-family=\"Times,serif\" font-size=\"14.00\">128</text>\n",
       "</g>\n",
       "<!-- image -->\n",
       "<g id=\"node62\" class=\"node\"><title>image</title>\n",
       "<ellipse fill=\"#8dd3c7\" stroke=\"black\" cx=\"5166\" cy=\"-29\" rx=\"47\" ry=\"29\"/>\n",
       "<text text-anchor=\"middle\" x=\"5166\" y=\"-25.3\" font-family=\"Times,serif\" font-size=\"14.00\">image</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_batchnorm0_fwd -->\n",
       "<g id=\"node63\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_batchnorm0_fwd</title>\n",
       "<polygon fill=\"#bebada\" stroke=\"black\" points=\"5331.5,-167 5000.5,-167 5000.5,-109 5331.5,-109 5331.5,-167\"/>\n",
       "<text text-anchor=\"middle\" x=\"5166\" y=\"-134.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_resnetv21_batchnorm0_fwd</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_batchnorm0_fwd&#45;&gt;image -->\n",
       "<g id=\"edge60\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_batchnorm0_fwd&#45;&gt;image</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5166,-98.5824C5166,-85.2841 5166,-70.632 5166,-58.2967\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5166,-108.887 5161.5,-98.887 5166,-103.887 5166,-98.887 5166,-98.887 5166,-98.887 5166,-103.887 5170.5,-98.8871 5166,-108.887 5166,-108.887\"/>\n",
       "<text text-anchor=\"middle\" x=\"5196.5\" y=\"-79.8\" font-family=\"Times,serif\" font-size=\"14.00\">3x224x224</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_conv0_fwd -->\n",
       "<g id=\"node64\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_conv0_fwd</title>\n",
       "<polygon fill=\"#fb8072\" stroke=\"black\" points=\"5213,-276 5119,-276 5119,-218 5213,-218 5213,-276\"/>\n",
       "<text text-anchor=\"middle\" x=\"5166\" y=\"-250.8\" font-family=\"Times,serif\" font-size=\"14.00\">Convolution</text>\n",
       "<text text-anchor=\"middle\" x=\"5166\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">7x7/2x2, 64</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_conv0_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_batchnorm0_fwd -->\n",
       "<g id=\"edge61\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_conv0_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_batchnorm0_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5166,-207.582C5166,-194.284 5166,-179.632 5166,-167.297\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5166,-217.887 5161.5,-207.887 5166,-212.887 5166,-207.887 5166,-207.887 5166,-207.887 5166,-212.887 5170.5,-207.887 5166,-217.887 5166,-217.887\"/>\n",
       "<text text-anchor=\"middle\" x=\"5196.5\" y=\"-188.8\" font-family=\"Times,serif\" font-size=\"14.00\">3x224x224</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_batchnorm1_fwd -->\n",
       "<g id=\"node65\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_batchnorm1_fwd</title>\n",
       "<polygon fill=\"#bebada\" stroke=\"black\" points=\"5331.5,-385 5000.5,-385 5000.5,-327 5331.5,-327 5331.5,-385\"/>\n",
       "<text text-anchor=\"middle\" x=\"5166\" y=\"-352.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_resnetv21_batchnorm1_fwd</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_batchnorm1_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_conv0_fwd -->\n",
       "<g id=\"edge62\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_batchnorm1_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_conv0_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5166,-316.582C5166,-303.284 5166,-288.632 5166,-276.297\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5166,-326.887 5161.5,-316.887 5166,-321.887 5166,-316.887 5166,-316.887 5166,-316.887 5166,-321.887 5170.5,-316.887 5166,-326.887 5166,-326.887\"/>\n",
       "<text text-anchor=\"middle\" x=\"5200\" y=\"-297.8\" font-family=\"Times,serif\" font-size=\"14.00\">64x112x112</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_relu0_fwd -->\n",
       "<g id=\"node66\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_relu0_fwd</title>\n",
       "<polygon fill=\"#ffffb3\" stroke=\"black\" points=\"5213,-494 5119,-494 5119,-436 5213,-436 5213,-494\"/>\n",
       "<text text-anchor=\"middle\" x=\"5166\" y=\"-468.8\" font-family=\"Times,serif\" font-size=\"14.00\">Activation</text>\n",
       "<text text-anchor=\"middle\" x=\"5166\" y=\"-453.8\" font-family=\"Times,serif\" font-size=\"14.00\">relu</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_relu0_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_batchnorm1_fwd -->\n",
       "<g id=\"edge63\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_relu0_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_batchnorm1_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5166,-425.582C5166,-412.284 5166,-397.632 5166,-385.297\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5166,-435.887 5161.5,-425.887 5166,-430.887 5166,-425.887 5166,-425.887 5166,-425.887 5166,-430.887 5170.5,-425.887 5166,-435.887 5166,-435.887\"/>\n",
       "<text text-anchor=\"middle\" x=\"5200\" y=\"-406.8\" font-family=\"Times,serif\" font-size=\"14.00\">64x112x112</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_pool0_fwd -->\n",
       "<g id=\"node67\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_pool0_fwd</title>\n",
       "<polygon fill=\"#80b1d3\" stroke=\"black\" points=\"5213,-603 5119,-603 5119,-545 5213,-545 5213,-603\"/>\n",
       "<text text-anchor=\"middle\" x=\"5166\" y=\"-577.8\" font-family=\"Times,serif\" font-size=\"14.00\">Pooling</text>\n",
       "<text text-anchor=\"middle\" x=\"5166\" y=\"-562.8\" font-family=\"Times,serif\" font-size=\"14.00\">max, 3x3/2x2</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_pool0_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_relu0_fwd -->\n",
       "<g id=\"edge64\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_pool0_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_relu0_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5166,-534.582C5166,-521.284 5166,-506.632 5166,-494.297\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5166,-544.887 5161.5,-534.887 5166,-539.887 5166,-534.887 5166,-534.887 5166,-534.887 5166,-539.887 5170.5,-534.887 5166,-544.887 5166,-544.887\"/>\n",
       "<text text-anchor=\"middle\" x=\"5200\" y=\"-515.8\" font-family=\"Times,serif\" font-size=\"14.00\">64x112x112</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage1_batchnorm0_fwd -->\n",
       "<g id=\"node68\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage1_batchnorm0_fwd</title>\n",
       "<polygon fill=\"#bebada\" stroke=\"black\" points=\"5209,-712 4837,-712 4837,-654 5209,-654 5209,-712\"/>\n",
       "<text text-anchor=\"middle\" x=\"5023\" y=\"-679.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_resnetv21_stage1_batchnorm0_fwd</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage1_batchnorm0_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_pool0_fwd -->\n",
       "<g id=\"edge65\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage1_batchnorm0_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_pool0_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5068.61,-647.874C5087.81,-633.503 5109.9,-616.975 5128.18,-603.297\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5060.57,-653.887 5065.88,-644.293 5064.57,-650.891 5068.58,-647.896 5068.58,-647.896 5068.58,-647.896 5064.57,-650.891 5071.27,-651.499 5060.57,-653.887 5060.57,-653.887\"/>\n",
       "<text text-anchor=\"middle\" x=\"5131.5\" y=\"-624.8\" font-family=\"Times,serif\" font-size=\"14.00\">64x56x56</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage1_activation0 -->\n",
       "<g id=\"node69\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage1_activation0</title>\n",
       "<polygon fill=\"#ffffb3\" stroke=\"black\" points=\"5070,-821 4976,-821 4976,-763 5070,-763 5070,-821\"/>\n",
       "<text text-anchor=\"middle\" x=\"5023\" y=\"-795.8\" font-family=\"Times,serif\" font-size=\"14.00\">Activation</text>\n",
       "<text text-anchor=\"middle\" x=\"5023\" y=\"-780.8\" font-family=\"Times,serif\" font-size=\"14.00\">relu</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage1_activation0&#45;&gt;dssmrecommendernetwork0_resnetv21_stage1_batchnorm0_fwd -->\n",
       "<g id=\"edge66\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage1_activation0&#45;&gt;dssmrecommendernetwork0_resnetv21_stage1_batchnorm0_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5023,-752.582C5023,-739.284 5023,-724.632 5023,-712.297\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5023,-762.887 5018.5,-752.887 5023,-757.887 5023,-752.887 5023,-752.887 5023,-752.887 5023,-757.887 5027.5,-752.887 5023,-762.887 5023,-762.887\"/>\n",
       "<text text-anchor=\"middle\" x=\"5050.5\" y=\"-733.8\" font-family=\"Times,serif\" font-size=\"14.00\">64x56x56</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage1_conv0_fwd -->\n",
       "<g id=\"node70\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage1_conv0_fwd</title>\n",
       "<polygon fill=\"#fb8072\" stroke=\"black\" points=\"5070,-930 4976,-930 4976,-872 5070,-872 5070,-930\"/>\n",
       "<text text-anchor=\"middle\" x=\"5023\" y=\"-904.8\" font-family=\"Times,serif\" font-size=\"14.00\">Convolution</text>\n",
       "<text text-anchor=\"middle\" x=\"5023\" y=\"-889.8\" font-family=\"Times,serif\" font-size=\"14.00\">3x3/1x1, 64</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage1_conv0_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage1_activation0 -->\n",
       "<g id=\"edge67\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage1_conv0_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage1_activation0</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5023,-861.582C5023,-848.284 5023,-833.632 5023,-821.297\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5023,-871.887 5018.5,-861.887 5023,-866.887 5023,-861.887 5023,-861.887 5023,-861.887 5023,-866.887 5027.5,-861.887 5023,-871.887 5023,-871.887\"/>\n",
       "<text text-anchor=\"middle\" x=\"5050.5\" y=\"-842.8\" font-family=\"Times,serif\" font-size=\"14.00\">64x56x56</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage1_batchnorm1_fwd -->\n",
       "<g id=\"node71\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage1_batchnorm1_fwd</title>\n",
       "<polygon fill=\"#bebada\" stroke=\"black\" points=\"5209,-1039 4837,-1039 4837,-981 5209,-981 5209,-1039\"/>\n",
       "<text text-anchor=\"middle\" x=\"5023\" y=\"-1006.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_resnetv21_stage1_batchnorm1_fwd</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage1_batchnorm1_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage1_conv0_fwd -->\n",
       "<g id=\"edge68\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage1_batchnorm1_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage1_conv0_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5023,-970.582C5023,-957.284 5023,-942.632 5023,-930.297\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5023,-980.887 5018.5,-970.887 5023,-975.887 5023,-970.887 5023,-970.887 5023,-970.887 5023,-975.887 5027.5,-970.887 5023,-980.887 5023,-980.887\"/>\n",
       "<text text-anchor=\"middle\" x=\"5050.5\" y=\"-951.8\" font-family=\"Times,serif\" font-size=\"14.00\">64x56x56</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage1_activation1 -->\n",
       "<g id=\"node72\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage1_activation1</title>\n",
       "<polygon fill=\"#ffffb3\" stroke=\"black\" points=\"5140,-1148 5046,-1148 5046,-1090 5140,-1090 5140,-1148\"/>\n",
       "<text text-anchor=\"middle\" x=\"5093\" y=\"-1122.8\" font-family=\"Times,serif\" font-size=\"14.00\">Activation</text>\n",
       "<text text-anchor=\"middle\" x=\"5093\" y=\"-1107.8\" font-family=\"Times,serif\" font-size=\"14.00\">relu</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage1_activation1&#45;&gt;dssmrecommendernetwork0_resnetv21_stage1_batchnorm1_fwd -->\n",
       "<g id=\"edge69\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage1_activation1&#45;&gt;dssmrecommendernetwork0_resnetv21_stage1_batchnorm1_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5068.9,-1081.16C5059.93,-1067.45 5049.9,-1052.12 5041.51,-1039.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5074.61,-1089.89 5065.37,-1083.98 5071.87,-1085.7 5069.13,-1081.52 5069.13,-1081.52 5069.13,-1081.52 5071.87,-1085.7 5072.9,-1079.06 5074.61,-1089.89 5074.61,-1089.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5090.5\" y=\"-1060.8\" font-family=\"Times,serif\" font-size=\"14.00\">64x56x56</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage1_conv1_fwd -->\n",
       "<g id=\"node73\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage1_conv1_fwd</title>\n",
       "<polygon fill=\"#fb8072\" stroke=\"black\" points=\"5209,-1257 5115,-1257 5115,-1199 5209,-1199 5209,-1257\"/>\n",
       "<text text-anchor=\"middle\" x=\"5162\" y=\"-1231.8\" font-family=\"Times,serif\" font-size=\"14.00\">Convolution</text>\n",
       "<text text-anchor=\"middle\" x=\"5162\" y=\"-1216.8\" font-family=\"Times,serif\" font-size=\"14.00\">3x3/1x1, 64</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage1_conv1_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage1_activation1 -->\n",
       "<g id=\"edge70\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage1_conv1_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage1_activation1</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5138.24,-1190.16C5129.4,-1176.45 5119.52,-1161.12 5111.25,-1148.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5143.87,-1198.89 5134.67,-1192.92 5141.16,-1194.68 5138.45,-1190.48 5138.45,-1190.48 5138.45,-1190.48 5141.16,-1194.68 5142.23,-1188.04 5143.87,-1198.89 5143.87,-1198.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5159.5\" y=\"-1169.8\" font-family=\"Times,serif\" font-size=\"14.00\">64x56x56</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage1__plus0 -->\n",
       "<g id=\"node74\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage1__plus0</title>\n",
       "<polygon fill=\"#fccde5\" stroke=\"black\" points=\"5357.5,-1366 5042.5,-1366 5042.5,-1308 5357.5,-1308 5357.5,-1366\"/>\n",
       "<text text-anchor=\"middle\" x=\"5200\" y=\"-1333.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_resnetv21_stage1__plus0</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage1__plus0&#45;&gt;dssmrecommendernetwork0_resnetv21_pool0_fwd -->\n",
       "<g id=\"edge72\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage1__plus0&#45;&gt;dssmrecommendernetwork0_resnetv21_pool0_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5219.67,-1298.74C5228.52,-1278.65 5237,-1253.1 5237,-1229 5237,-1229 5237,-1229 5237,-682 5237,-651.457 5216.67,-622.961 5197.76,-603.068\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5215.48,-1307.85 5215.57,-1296.88 5217.57,-1303.31 5219.66,-1298.76 5219.66,-1298.76 5219.66,-1298.76 5217.57,-1303.31 5223.75,-1300.65 5215.48,-1307.85 5215.48,-1307.85\"/>\n",
       "<text text-anchor=\"middle\" x=\"5264.5\" y=\"-951.8\" font-family=\"Times,serif\" font-size=\"14.00\">64x56x56</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage1__plus0&#45;&gt;dssmrecommendernetwork0_resnetv21_stage1_conv1_fwd -->\n",
       "<g id=\"edge71\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage1__plus0&#45;&gt;dssmrecommendernetwork0_resnetv21_stage1_conv1_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5172.05,-1299.09C5170.51,-1296.1 5169.13,-1293.06 5168,-1290 5164.21,-1279.71 5162.5,-1267.83 5161.81,-1257.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5177.11,-1307.8 5168.2,-1301.41 5174.6,-1303.48 5172.09,-1299.16 5172.09,-1299.16 5172.09,-1299.16 5174.6,-1303.48 5175.98,-1296.9 5177.11,-1307.8 5177.11,-1307.8\"/>\n",
       "<text text-anchor=\"middle\" x=\"5195.5\" y=\"-1278.8\" font-family=\"Times,serif\" font-size=\"14.00\">64x56x56</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage1_batchnorm2_fwd -->\n",
       "<g id=\"node75\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage1_batchnorm2_fwd</title>\n",
       "<polygon fill=\"#bebada\" stroke=\"black\" points=\"5243,-1475 4871,-1475 4871,-1417 5243,-1417 5243,-1475\"/>\n",
       "<text text-anchor=\"middle\" x=\"5057\" y=\"-1442.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_resnetv21_stage1_batchnorm2_fwd</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage1_batchnorm2_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage1__plus0 -->\n",
       "<g id=\"edge73\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage1_batchnorm2_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage1__plus0</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5102.61,-1410.87C5121.81,-1396.5 5143.9,-1379.98 5162.18,-1366.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5094.57,-1416.89 5099.88,-1407.29 5098.57,-1413.89 5102.58,-1410.9 5102.58,-1410.9 5102.58,-1410.9 5098.57,-1413.89 5105.27,-1414.5 5094.57,-1416.89 5094.57,-1416.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5165.5\" y=\"-1387.8\" font-family=\"Times,serif\" font-size=\"14.00\">64x56x56</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage1_activation2 -->\n",
       "<g id=\"node76\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage1_activation2</title>\n",
       "<polygon fill=\"#ffffb3\" stroke=\"black\" points=\"5104,-1584 5010,-1584 5010,-1526 5104,-1526 5104,-1584\"/>\n",
       "<text text-anchor=\"middle\" x=\"5057\" y=\"-1558.8\" font-family=\"Times,serif\" font-size=\"14.00\">Activation</text>\n",
       "<text text-anchor=\"middle\" x=\"5057\" y=\"-1543.8\" font-family=\"Times,serif\" font-size=\"14.00\">relu</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage1_activation2&#45;&gt;dssmrecommendernetwork0_resnetv21_stage1_batchnorm2_fwd -->\n",
       "<g id=\"edge74\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage1_activation2&#45;&gt;dssmrecommendernetwork0_resnetv21_stage1_batchnorm2_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5057,-1515.58C5057,-1502.28 5057,-1487.63 5057,-1475.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5057,-1525.89 5052.5,-1515.89 5057,-1520.89 5057,-1515.89 5057,-1515.89 5057,-1515.89 5057,-1520.89 5061.5,-1515.89 5057,-1525.89 5057,-1525.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5084.5\" y=\"-1496.8\" font-family=\"Times,serif\" font-size=\"14.00\">64x56x56</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage1_conv2_fwd -->\n",
       "<g id=\"node77\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage1_conv2_fwd</title>\n",
       "<polygon fill=\"#fb8072\" stroke=\"black\" points=\"5104,-1693 5010,-1693 5010,-1635 5104,-1635 5104,-1693\"/>\n",
       "<text text-anchor=\"middle\" x=\"5057\" y=\"-1667.8\" font-family=\"Times,serif\" font-size=\"14.00\">Convolution</text>\n",
       "<text text-anchor=\"middle\" x=\"5057\" y=\"-1652.8\" font-family=\"Times,serif\" font-size=\"14.00\">3x3/1x1, 64</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage1_conv2_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage1_activation2 -->\n",
       "<g id=\"edge75\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage1_conv2_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage1_activation2</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5057,-1624.58C5057,-1611.28 5057,-1596.63 5057,-1584.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5057,-1634.89 5052.5,-1624.89 5057,-1629.89 5057,-1624.89 5057,-1624.89 5057,-1624.89 5057,-1629.89 5061.5,-1624.89 5057,-1634.89 5057,-1634.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5084.5\" y=\"-1605.8\" font-family=\"Times,serif\" font-size=\"14.00\">64x56x56</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage1_batchnorm3_fwd -->\n",
       "<g id=\"node78\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage1_batchnorm3_fwd</title>\n",
       "<polygon fill=\"#bebada\" stroke=\"black\" points=\"5243,-1802 4871,-1802 4871,-1744 5243,-1744 5243,-1802\"/>\n",
       "<text text-anchor=\"middle\" x=\"5057\" y=\"-1769.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_resnetv21_stage1_batchnorm3_fwd</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage1_batchnorm3_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage1_conv2_fwd -->\n",
       "<g id=\"edge76\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage1_batchnorm3_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage1_conv2_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5057,-1733.58C5057,-1720.28 5057,-1705.63 5057,-1693.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5057,-1743.89 5052.5,-1733.89 5057,-1738.89 5057,-1733.89 5057,-1733.89 5057,-1733.89 5057,-1738.89 5061.5,-1733.89 5057,-1743.89 5057,-1743.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5084.5\" y=\"-1714.8\" font-family=\"Times,serif\" font-size=\"14.00\">64x56x56</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage1_activation3 -->\n",
       "<g id=\"node79\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage1_activation3</title>\n",
       "<polygon fill=\"#ffffb3\" stroke=\"black\" points=\"5174,-1911 5080,-1911 5080,-1853 5174,-1853 5174,-1911\"/>\n",
       "<text text-anchor=\"middle\" x=\"5127\" y=\"-1885.8\" font-family=\"Times,serif\" font-size=\"14.00\">Activation</text>\n",
       "<text text-anchor=\"middle\" x=\"5127\" y=\"-1870.8\" font-family=\"Times,serif\" font-size=\"14.00\">relu</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage1_activation3&#45;&gt;dssmrecommendernetwork0_resnetv21_stage1_batchnorm3_fwd -->\n",
       "<g id=\"edge77\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage1_activation3&#45;&gt;dssmrecommendernetwork0_resnetv21_stage1_batchnorm3_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5102.9,-1844.16C5093.93,-1830.45 5083.9,-1815.12 5075.51,-1802.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5108.61,-1852.89 5099.37,-1846.98 5105.87,-1848.7 5103.13,-1844.52 5103.13,-1844.52 5103.13,-1844.52 5105.87,-1848.7 5106.9,-1842.06 5108.61,-1852.89 5108.61,-1852.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5124.5\" y=\"-1823.8\" font-family=\"Times,serif\" font-size=\"14.00\">64x56x56</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage1_conv3_fwd -->\n",
       "<g id=\"node80\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage1_conv3_fwd</title>\n",
       "<polygon fill=\"#fb8072\" stroke=\"black\" points=\"5243,-2020 5149,-2020 5149,-1962 5243,-1962 5243,-2020\"/>\n",
       "<text text-anchor=\"middle\" x=\"5196\" y=\"-1994.8\" font-family=\"Times,serif\" font-size=\"14.00\">Convolution</text>\n",
       "<text text-anchor=\"middle\" x=\"5196\" y=\"-1979.8\" font-family=\"Times,serif\" font-size=\"14.00\">3x3/1x1, 64</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage1_conv3_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage1_activation3 -->\n",
       "<g id=\"edge78\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage1_conv3_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage1_activation3</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5172.24,-1953.16C5163.4,-1939.45 5153.52,-1924.12 5145.25,-1911.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5177.87,-1961.89 5168.67,-1955.92 5175.16,-1957.68 5172.45,-1953.48 5172.45,-1953.48 5172.45,-1953.48 5175.16,-1957.68 5176.23,-1951.04 5177.87,-1961.89 5177.87,-1961.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5193.5\" y=\"-1932.8\" font-family=\"Times,serif\" font-size=\"14.00\">64x56x56</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage1__plus1 -->\n",
       "<g id=\"node81\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage1__plus1</title>\n",
       "<polygon fill=\"#fccde5\" stroke=\"black\" points=\"5392.5,-2129 5077.5,-2129 5077.5,-2071 5392.5,-2071 5392.5,-2129\"/>\n",
       "<text text-anchor=\"middle\" x=\"5235\" y=\"-2096.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_resnetv21_stage1__plus1</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage1__plus1&#45;&gt;dssmrecommendernetwork0_resnetv21_stage1__plus0 -->\n",
       "<g id=\"edge80\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage1__plus1&#45;&gt;dssmrecommendernetwork0_resnetv21_stage1__plus0</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5254.26,-2061.41C5262.82,-2041.35 5271,-2015.92 5271,-1992 5271,-1992 5271,-1992 5271,-1445 5271,-1414.46 5250.67,-1385.96 5231.76,-1366.07\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5250.06,-2070.8 5250.03,-2059.83 5252.1,-2066.24 5254.14,-2061.67 5254.14,-2061.67 5254.14,-2061.67 5252.1,-2066.24 5258.25,-2063.51 5250.06,-2070.8 5250.06,-2070.8\"/>\n",
       "<text text-anchor=\"middle\" x=\"5298.5\" y=\"-1714.8\" font-family=\"Times,serif\" font-size=\"14.00\">64x56x56</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage1__plus1&#45;&gt;dssmrecommendernetwork0_resnetv21_stage1_conv3_fwd -->\n",
       "<g id=\"edge79\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage1__plus1&#45;&gt;dssmrecommendernetwork0_resnetv21_stage1_conv3_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5206.18,-2062.14C5204.58,-2059.14 5203.16,-2056.08 5202,-2053 5198.1,-2042.64 5196.38,-2030.63 5195.71,-2020.02\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5211.39,-2070.88 5202.4,-2064.6 5208.83,-2066.59 5206.27,-2062.29 5206.27,-2062.29 5206.27,-2062.29 5208.83,-2066.59 5210.13,-2059.99 5211.39,-2070.88 5211.39,-2070.88\"/>\n",
       "<text text-anchor=\"middle\" x=\"5229.5\" y=\"-2041.8\" font-family=\"Times,serif\" font-size=\"14.00\">64x56x56</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage2_batchnorm0_fwd -->\n",
       "<g id=\"node82\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage2_batchnorm0_fwd</title>\n",
       "<polygon fill=\"#bebada\" stroke=\"black\" points=\"5421,-2238 5049,-2238 5049,-2180 5421,-2180 5421,-2238\"/>\n",
       "<text text-anchor=\"middle\" x=\"5235\" y=\"-2205.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_resnetv21_stage2_batchnorm0_fwd</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage2_batchnorm0_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage1__plus1 -->\n",
       "<g id=\"edge81\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage2_batchnorm0_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage1__plus1</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5235,-2169.58C5235,-2156.28 5235,-2141.63 5235,-2129.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5235,-2179.89 5230.5,-2169.89 5235,-2174.89 5235,-2169.89 5235,-2169.89 5235,-2169.89 5235,-2174.89 5239.5,-2169.89 5235,-2179.89 5235,-2179.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5262.5\" y=\"-2150.8\" font-family=\"Times,serif\" font-size=\"14.00\">64x56x56</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage2_activation0 -->\n",
       "<g id=\"node83\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage2_activation0</title>\n",
       "<polygon fill=\"#ffffb3\" stroke=\"black\" points=\"5282,-2347 5188,-2347 5188,-2289 5282,-2289 5282,-2347\"/>\n",
       "<text text-anchor=\"middle\" x=\"5235\" y=\"-2321.8\" font-family=\"Times,serif\" font-size=\"14.00\">Activation</text>\n",
       "<text text-anchor=\"middle\" x=\"5235\" y=\"-2306.8\" font-family=\"Times,serif\" font-size=\"14.00\">relu</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage2_activation0&#45;&gt;dssmrecommendernetwork0_resnetv21_stage2_batchnorm0_fwd -->\n",
       "<g id=\"edge82\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage2_activation0&#45;&gt;dssmrecommendernetwork0_resnetv21_stage2_batchnorm0_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5235,-2278.58C5235,-2265.28 5235,-2250.63 5235,-2238.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5235,-2288.89 5230.5,-2278.89 5235,-2283.89 5235,-2278.89 5235,-2278.89 5235,-2278.89 5235,-2283.89 5239.5,-2278.89 5235,-2288.89 5235,-2288.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5262.5\" y=\"-2259.8\" font-family=\"Times,serif\" font-size=\"14.00\">64x56x56</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage2_conv0_fwd -->\n",
       "<g id=\"node84\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage2_conv0_fwd</title>\n",
       "<polygon fill=\"#fb8072\" stroke=\"black\" points=\"5216,-2456 5122,-2456 5122,-2398 5216,-2398 5216,-2456\"/>\n",
       "<text text-anchor=\"middle\" x=\"5169\" y=\"-2430.8\" font-family=\"Times,serif\" font-size=\"14.00\">Convolution</text>\n",
       "<text text-anchor=\"middle\" x=\"5169\" y=\"-2415.8\" font-family=\"Times,serif\" font-size=\"14.00\">3x3/2x2, 128</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage2_conv0_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage2_activation0 -->\n",
       "<g id=\"edge83\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage2_conv0_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage2_activation0</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5191.73,-2389.16C5200.18,-2375.45 5209.64,-2360.12 5217.55,-2347.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5186.34,-2397.89 5187.76,-2387.01 5188.97,-2393.63 5191.59,-2389.38 5191.59,-2389.38 5191.59,-2389.38 5188.97,-2393.63 5195.42,-2391.74 5186.34,-2397.89 5186.34,-2397.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5233.5\" y=\"-2368.8\" font-family=\"Times,serif\" font-size=\"14.00\">64x56x56</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage2_batchnorm1_fwd -->\n",
       "<g id=\"node85\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage2_batchnorm1_fwd</title>\n",
       "<polygon fill=\"#bebada\" stroke=\"black\" points=\"5245,-2565 4873,-2565 4873,-2507 5245,-2507 5245,-2565\"/>\n",
       "<text text-anchor=\"middle\" x=\"5059\" y=\"-2532.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_resnetv21_stage2_batchnorm1_fwd</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage2_batchnorm1_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage2_conv0_fwd -->\n",
       "<g id=\"edge84\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage2_batchnorm1_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage2_conv0_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5095.27,-2499.72C5109.76,-2485.62 5126.22,-2469.61 5139.91,-2456.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5087.9,-2506.89 5091.93,-2496.69 5091.49,-2503.4 5095.07,-2499.91 5095.07,-2499.91 5095.07,-2499.91 5091.49,-2503.4 5098.21,-2503.14 5087.9,-2506.89 5087.9,-2506.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5151.5\" y=\"-2477.8\" font-family=\"Times,serif\" font-size=\"14.00\">128x28x28</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage2_activation1 -->\n",
       "<g id=\"node86\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage2_activation1</title>\n",
       "<polygon fill=\"#ffffb3\" stroke=\"black\" points=\"5120,-2674 5026,-2674 5026,-2616 5120,-2616 5120,-2674\"/>\n",
       "<text text-anchor=\"middle\" x=\"5073\" y=\"-2648.8\" font-family=\"Times,serif\" font-size=\"14.00\">Activation</text>\n",
       "<text text-anchor=\"middle\" x=\"5073\" y=\"-2633.8\" font-family=\"Times,serif\" font-size=\"14.00\">relu</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage2_activation1&#45;&gt;dssmrecommendernetwork0_resnetv21_stage2_batchnorm1_fwd -->\n",
       "<g id=\"edge85\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage2_activation1&#45;&gt;dssmrecommendernetwork0_resnetv21_stage2_batchnorm1_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5067.97,-2605.58C5066.23,-2592.28 5064.32,-2577.63 5062.7,-2565.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5069.32,-2615.89 5063.56,-2606.56 5068.67,-2610.93 5068.02,-2605.97 5068.02,-2605.97 5068.02,-2605.97 5068.67,-2610.93 5072.49,-2605.39 5069.32,-2615.89 5069.32,-2615.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5097.5\" y=\"-2586.8\" font-family=\"Times,serif\" font-size=\"14.00\">128x28x28</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage2_conv1_fwd -->\n",
       "<g id=\"node87\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage2_conv1_fwd</title>\n",
       "<polygon fill=\"#fb8072\" stroke=\"black\" points=\"5151,-2826 5057,-2826 5057,-2768 5151,-2768 5151,-2826\"/>\n",
       "<text text-anchor=\"middle\" x=\"5104\" y=\"-2800.8\" font-family=\"Times,serif\" font-size=\"14.00\">Convolution</text>\n",
       "<text text-anchor=\"middle\" x=\"5104\" y=\"-2785.8\" font-family=\"Times,serif\" font-size=\"14.00\">3x3/1x1, 128</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage2_conv1_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage2_activation1 -->\n",
       "<g id=\"edge86\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage2_conv1_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage2_activation1</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5096.12,-2757.85C5090.72,-2731.75 5083.69,-2697.73 5078.8,-2674.09\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5098.17,-2767.79 5091.74,-2758.9 5097.16,-2762.89 5096.15,-2757.99 5096.15,-2757.99 5096.15,-2757.99 5097.16,-2762.89 5100.55,-2757.08 5098.17,-2767.79 5098.17,-2767.79\"/>\n",
       "<text text-anchor=\"middle\" x=\"5124.5\" y=\"-2717.3\" font-family=\"Times,serif\" font-size=\"14.00\">128x28x28</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage2_conv2_fwd -->\n",
       "<g id=\"node88\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage2_conv2_fwd</title>\n",
       "<polygon fill=\"#fb8072\" stroke=\"black\" points=\"5314,-2750 5220,-2750 5220,-2692 5314,-2692 5314,-2750\"/>\n",
       "<text text-anchor=\"middle\" x=\"5267\" y=\"-2724.8\" font-family=\"Times,serif\" font-size=\"14.00\">Convolution</text>\n",
       "<text text-anchor=\"middle\" x=\"5267\" y=\"-2709.8\" font-family=\"Times,serif\" font-size=\"14.00\">1x1/2x2, 128</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage2_conv2_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage2_activation0 -->\n",
       "<g id=\"edge87\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage2_conv2_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage2_activation0</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5273.36,-2681.77C5277.06,-2656.27 5281,-2621.97 5281,-2591.5 5281,-2591.5 5281,-2591.5 5281,-2426 5281,-2397.97 5276.36,-2390.62 5265,-2365 5262.37,-2359.07 5259.02,-2353.05 5255.52,-2347.4\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5271.86,-2691.77 5268.89,-2681.21 5272.6,-2686.82 5273.34,-2681.88 5273.34,-2681.88 5273.34,-2681.88 5272.6,-2686.82 5277.79,-2682.55 5271.86,-2691.77 5271.86,-2691.77\"/>\n",
       "<text text-anchor=\"middle\" x=\"5308.5\" y=\"-2532.3\" font-family=\"Times,serif\" font-size=\"14.00\">64x56x56</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage2__plus0 -->\n",
       "<g id=\"node89\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage2__plus0</title>\n",
       "<polygon fill=\"#fccde5\" stroke=\"black\" points=\"5310.5,-2935 4995.5,-2935 4995.5,-2877 5310.5,-2877 5310.5,-2935\"/>\n",
       "<text text-anchor=\"middle\" x=\"5153\" y=\"-2902.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_resnetv21_stage2__plus0</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage2__plus0&#45;&gt;dssmrecommendernetwork0_resnetv21_stage2_conv1_fwd -->\n",
       "<g id=\"edge88\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage2__plus0&#45;&gt;dssmrecommendernetwork0_resnetv21_stage2_conv1_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5130.45,-2867.91C5128.88,-2864.93 5127.38,-2861.93 5126,-2859 5121.08,-2848.5 5116.55,-2836.58 5112.91,-2826.07\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5135.31,-2876.73 5126.55,-2870.14 5132.9,-2872.35 5130.49,-2867.97 5130.49,-2867.97 5130.49,-2867.97 5132.9,-2872.35 5134.43,-2865.8 5135.31,-2876.73 5135.31,-2876.73\"/>\n",
       "<text text-anchor=\"middle\" x=\"5156.5\" y=\"-2847.8\" font-family=\"Times,serif\" font-size=\"14.00\">128x28x28</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage2__plus0&#45;&gt;dssmrecommendernetwork0_resnetv21_stage2_conv2_fwd -->\n",
       "<g id=\"edge89\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage2__plus0&#45;&gt;dssmrecommendernetwork0_resnetv21_stage2_conv2_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5180.6,-2868.39C5182.81,-2865.24 5184.97,-2862.08 5187,-2859 5211.17,-2822.31 5236.28,-2778.16 5251.77,-2750.09\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5174.71,-2876.63 5176.87,-2865.88 5177.62,-2872.56 5180.53,-2868.5 5180.53,-2868.5 5180.53,-2868.5 5177.62,-2872.56 5184.19,-2871.12 5174.71,-2876.63 5174.71,-2876.63\"/>\n",
       "<text text-anchor=\"middle\" x=\"5226.5\" y=\"-2847.8\" font-family=\"Times,serif\" font-size=\"14.00\">128x28x28</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage2_batchnorm2_fwd -->\n",
       "<g id=\"node90\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage2_batchnorm2_fwd</title>\n",
       "<polygon fill=\"#bebada\" stroke=\"black\" points=\"5198,-3044 4826,-3044 4826,-2986 5198,-2986 5198,-3044\"/>\n",
       "<text text-anchor=\"middle\" x=\"5012\" y=\"-3011.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_resnetv21_stage2_batchnorm2_fwd</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage2_batchnorm2_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage2__plus0 -->\n",
       "<g id=\"edge90\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage2_batchnorm2_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage2__plus0</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5057.22,-2979.68C5076.1,-2965.36 5097.77,-2948.91 5115.71,-2935.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5049.05,-2985.89 5054.29,-2976.26 5053.03,-2982.86 5057.01,-2979.84 5057.01,-2979.84 5057.01,-2979.84 5053.03,-2982.86 5059.73,-2983.43 5049.05,-2985.89 5049.05,-2985.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5121.5\" y=\"-2956.8\" font-family=\"Times,serif\" font-size=\"14.00\">128x28x28</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage2_activation2 -->\n",
       "<g id=\"node91\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage2_activation2</title>\n",
       "<polygon fill=\"#ffffb3\" stroke=\"black\" points=\"5059,-3153 4965,-3153 4965,-3095 5059,-3095 5059,-3153\"/>\n",
       "<text text-anchor=\"middle\" x=\"5012\" y=\"-3127.8\" font-family=\"Times,serif\" font-size=\"14.00\">Activation</text>\n",
       "<text text-anchor=\"middle\" x=\"5012\" y=\"-3112.8\" font-family=\"Times,serif\" font-size=\"14.00\">relu</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage2_activation2&#45;&gt;dssmrecommendernetwork0_resnetv21_stage2_batchnorm2_fwd -->\n",
       "<g id=\"edge91\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage2_activation2&#45;&gt;dssmrecommendernetwork0_resnetv21_stage2_batchnorm2_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5012,-3084.58C5012,-3071.28 5012,-3056.63 5012,-3044.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5012,-3094.89 5007.5,-3084.89 5012,-3089.89 5012,-3084.89 5012,-3084.89 5012,-3084.89 5012,-3089.89 5016.5,-3084.89 5012,-3094.89 5012,-3094.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5042.5\" y=\"-3065.8\" font-family=\"Times,serif\" font-size=\"14.00\">128x28x28</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage2_conv3_fwd -->\n",
       "<g id=\"node92\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage2_conv3_fwd</title>\n",
       "<polygon fill=\"#fb8072\" stroke=\"black\" points=\"5059,-3262 4965,-3262 4965,-3204 5059,-3204 5059,-3262\"/>\n",
       "<text text-anchor=\"middle\" x=\"5012\" y=\"-3236.8\" font-family=\"Times,serif\" font-size=\"14.00\">Convolution</text>\n",
       "<text text-anchor=\"middle\" x=\"5012\" y=\"-3221.8\" font-family=\"Times,serif\" font-size=\"14.00\">3x3/1x1, 128</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage2_conv3_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage2_activation2 -->\n",
       "<g id=\"edge92\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage2_conv3_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage2_activation2</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5012,-3193.58C5012,-3180.28 5012,-3165.63 5012,-3153.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5012,-3203.89 5007.5,-3193.89 5012,-3198.89 5012,-3193.89 5012,-3193.89 5012,-3193.89 5012,-3198.89 5016.5,-3193.89 5012,-3203.89 5012,-3203.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5042.5\" y=\"-3174.8\" font-family=\"Times,serif\" font-size=\"14.00\">128x28x28</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage2_batchnorm3_fwd -->\n",
       "<g id=\"node93\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage2_batchnorm3_fwd</title>\n",
       "<polygon fill=\"#bebada\" stroke=\"black\" points=\"5198,-3371 4826,-3371 4826,-3313 5198,-3313 5198,-3371\"/>\n",
       "<text text-anchor=\"middle\" x=\"5012\" y=\"-3338.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_resnetv21_stage2_batchnorm3_fwd</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage2_batchnorm3_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage2_conv3_fwd -->\n",
       "<g id=\"edge93\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage2_batchnorm3_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage2_conv3_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5012,-3302.58C5012,-3289.28 5012,-3274.63 5012,-3262.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5012,-3312.89 5007.5,-3302.89 5012,-3307.89 5012,-3302.89 5012,-3302.89 5012,-3302.89 5012,-3307.89 5016.5,-3302.89 5012,-3312.89 5012,-3312.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5042.5\" y=\"-3283.8\" font-family=\"Times,serif\" font-size=\"14.00\">128x28x28</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage2_activation3 -->\n",
       "<g id=\"node94\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage2_activation3</title>\n",
       "<polygon fill=\"#ffffb3\" stroke=\"black\" points=\"5072,-3480 4978,-3480 4978,-3422 5072,-3422 5072,-3480\"/>\n",
       "<text text-anchor=\"middle\" x=\"5025\" y=\"-3454.8\" font-family=\"Times,serif\" font-size=\"14.00\">Activation</text>\n",
       "<text text-anchor=\"middle\" x=\"5025\" y=\"-3439.8\" font-family=\"Times,serif\" font-size=\"14.00\">relu</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage2_activation3&#45;&gt;dssmrecommendernetwork0_resnetv21_stage2_batchnorm3_fwd -->\n",
       "<g id=\"edge94\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage2_activation3&#45;&gt;dssmrecommendernetwork0_resnetv21_stage2_batchnorm3_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5020.33,-3411.58C5018.72,-3398.28 5016.94,-3383.63 5015.44,-3371.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5021.58,-3421.89 5015.91,-3412.5 5020.98,-3416.92 5020.38,-3411.96 5020.38,-3411.96 5020.38,-3411.96 5020.98,-3416.92 5024.85,-3411.42 5021.58,-3421.89 5021.58,-3421.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5050.5\" y=\"-3392.8\" font-family=\"Times,serif\" font-size=\"14.00\">128x28x28</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage2_conv4_fwd -->\n",
       "<g id=\"node95\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage2_conv4_fwd</title>\n",
       "<polygon fill=\"#fb8072\" stroke=\"black\" points=\"5094,-3589 5000,-3589 5000,-3531 5094,-3531 5094,-3589\"/>\n",
       "<text text-anchor=\"middle\" x=\"5047\" y=\"-3563.8\" font-family=\"Times,serif\" font-size=\"14.00\">Convolution</text>\n",
       "<text text-anchor=\"middle\" x=\"5047\" y=\"-3548.8\" font-family=\"Times,serif\" font-size=\"14.00\">3x3/1x1, 128</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage2_conv4_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage2_activation3 -->\n",
       "<g id=\"edge95\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage2_conv4_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage2_activation3</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5039.18,-3520.98C5036.43,-3507.57 5033.38,-3492.75 5030.82,-3480.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5041.22,-3530.89 5034.8,-3522 5040.21,-3525.99 5039.21,-3521.09 5039.21,-3521.09 5039.21,-3521.09 5040.21,-3525.99 5043.61,-3520.19 5041.22,-3530.89 5041.22,-3530.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5068.5\" y=\"-3501.8\" font-family=\"Times,serif\" font-size=\"14.00\">128x28x28</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage2__plus1 -->\n",
       "<g id=\"node96\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage2__plus1</title>\n",
       "<polygon fill=\"#fccde5\" stroke=\"black\" points=\"5276.5,-3698 4961.5,-3698 4961.5,-3640 5276.5,-3640 5276.5,-3698\"/>\n",
       "<text text-anchor=\"middle\" x=\"5119\" y=\"-3665.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_resnetv21_stage2__plus1</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage2__plus1&#45;&gt;dssmrecommendernetwork0_resnetv21_stage2__plus0 -->\n",
       "<g id=\"edge97\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage2__plus1&#45;&gt;dssmrecommendernetwork0_resnetv21_stage2__plus0</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5180.34,-3634.08C5204.24,-3616.06 5226,-3591.33 5226,-3561 5226,-3561 5226,-3561 5226,-3014 5226,-2983.42 5205.4,-2955.13 5186.08,-2935.33\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5172.19,-3639.93 5177.69,-3630.45 5176.25,-3637.02 5180.31,-3634.11 5180.31,-3634.11 5180.31,-3634.11 5176.25,-3637.02 5182.94,-3637.76 5172.19,-3639.93 5172.19,-3639.93\"/>\n",
       "<text text-anchor=\"middle\" x=\"5256.5\" y=\"-3283.8\" font-family=\"Times,serif\" font-size=\"14.00\">128x28x28</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage2__plus1&#45;&gt;dssmrecommendernetwork0_resnetv21_stage2_conv4_fwd -->\n",
       "<g id=\"edge96\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage2__plus1&#45;&gt;dssmrecommendernetwork0_resnetv21_stage2_conv4_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5094.47,-3631.55C5085.18,-3617.74 5074.75,-3602.24 5066.04,-3589.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5100.08,-3639.89 5090.77,-3634.1 5097.29,-3635.74 5094.5,-3631.59 5094.5,-3631.59 5094.5,-3631.59 5097.29,-3635.74 5098.23,-3629.08 5100.08,-3639.89 5100.08,-3639.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5118.5\" y=\"-3610.8\" font-family=\"Times,serif\" font-size=\"14.00\">128x28x28</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage3_batchnorm0_fwd -->\n",
       "<g id=\"node97\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage3_batchnorm0_fwd</title>\n",
       "<polygon fill=\"#bebada\" stroke=\"black\" points=\"5305,-3807 4933,-3807 4933,-3749 5305,-3749 5305,-3807\"/>\n",
       "<text text-anchor=\"middle\" x=\"5119\" y=\"-3774.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_resnetv21_stage3_batchnorm0_fwd</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage3_batchnorm0_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage2__plus1 -->\n",
       "<g id=\"edge98\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage3_batchnorm0_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage2__plus1</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5119,-3738.58C5119,-3725.28 5119,-3710.63 5119,-3698.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5119,-3748.89 5114.5,-3738.89 5119,-3743.89 5119,-3738.89 5119,-3738.89 5119,-3738.89 5119,-3743.89 5123.5,-3738.89 5119,-3748.89 5119,-3748.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5149.5\" y=\"-3719.8\" font-family=\"Times,serif\" font-size=\"14.00\">128x28x28</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage3_activation0 -->\n",
       "<g id=\"node98\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage3_activation0</title>\n",
       "<polygon fill=\"#ffffb3\" stroke=\"black\" points=\"5166,-3916 5072,-3916 5072,-3858 5166,-3858 5166,-3916\"/>\n",
       "<text text-anchor=\"middle\" x=\"5119\" y=\"-3890.8\" font-family=\"Times,serif\" font-size=\"14.00\">Activation</text>\n",
       "<text text-anchor=\"middle\" x=\"5119\" y=\"-3875.8\" font-family=\"Times,serif\" font-size=\"14.00\">relu</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage3_activation0&#45;&gt;dssmrecommendernetwork0_resnetv21_stage3_batchnorm0_fwd -->\n",
       "<g id=\"edge99\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage3_activation0&#45;&gt;dssmrecommendernetwork0_resnetv21_stage3_batchnorm0_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5119,-3847.58C5119,-3834.28 5119,-3819.63 5119,-3807.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5119,-3857.89 5114.5,-3847.89 5119,-3852.89 5119,-3847.89 5119,-3847.89 5119,-3847.89 5119,-3852.89 5123.5,-3847.89 5119,-3857.89 5119,-3857.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5149.5\" y=\"-3828.8\" font-family=\"Times,serif\" font-size=\"14.00\">128x28x28</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage3_conv0_fwd -->\n",
       "<g id=\"node99\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage3_conv0_fwd</title>\n",
       "<polygon fill=\"#fb8072\" stroke=\"black\" points=\"5100,-4025 5006,-4025 5006,-3967 5100,-3967 5100,-4025\"/>\n",
       "<text text-anchor=\"middle\" x=\"5053\" y=\"-3999.8\" font-family=\"Times,serif\" font-size=\"14.00\">Convolution</text>\n",
       "<text text-anchor=\"middle\" x=\"5053\" y=\"-3984.8\" font-family=\"Times,serif\" font-size=\"14.00\">3x3/2x2, 256</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage3_conv0_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage3_activation0 -->\n",
       "<g id=\"edge100\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage3_conv0_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage3_activation0</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5075.73,-3958.16C5084.18,-3944.45 5093.64,-3929.12 5101.55,-3916.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5070.34,-3966.89 5071.76,-3956.01 5072.97,-3962.63 5075.59,-3958.38 5075.59,-3958.38 5075.59,-3958.38 5072.97,-3962.63 5079.42,-3960.74 5070.34,-3966.89 5070.34,-3966.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5120.5\" y=\"-3937.8\" font-family=\"Times,serif\" font-size=\"14.00\">128x28x28</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage3_batchnorm1_fwd -->\n",
       "<g id=\"node100\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage3_batchnorm1_fwd</title>\n",
       "<polygon fill=\"#bebada\" stroke=\"black\" points=\"5130,-4134 4758,-4134 4758,-4076 5130,-4076 5130,-4134\"/>\n",
       "<text text-anchor=\"middle\" x=\"4944\" y=\"-4101.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_resnetv21_stage3_batchnorm1_fwd</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage3_batchnorm1_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage3_conv0_fwd -->\n",
       "<g id=\"edge101\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage3_batchnorm1_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage3_conv0_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M4979.94,-4068.72C4994.3,-4054.62 5010.61,-4038.61 5024.17,-4025.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"4972.64,-4075.89 4976.62,-4065.67 4976.21,-4072.38 4979.77,-4068.88 4979.77,-4068.88 4979.77,-4068.88 4976.21,-4072.38 4982.93,-4072.09 4972.64,-4075.89 4972.64,-4075.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5036.5\" y=\"-4046.8\" font-family=\"Times,serif\" font-size=\"14.00\">256x14x14</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage3_activation1 -->\n",
       "<g id=\"node101\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage3_activation1</title>\n",
       "<polygon fill=\"#ffffb3\" stroke=\"black\" points=\"5012,-4243 4918,-4243 4918,-4185 5012,-4185 5012,-4243\"/>\n",
       "<text text-anchor=\"middle\" x=\"4965\" y=\"-4217.8\" font-family=\"Times,serif\" font-size=\"14.00\">Activation</text>\n",
       "<text text-anchor=\"middle\" x=\"4965\" y=\"-4202.8\" font-family=\"Times,serif\" font-size=\"14.00\">relu</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage3_activation1&#45;&gt;dssmrecommendernetwork0_resnetv21_stage3_batchnorm1_fwd -->\n",
       "<g id=\"edge102\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage3_activation1&#45;&gt;dssmrecommendernetwork0_resnetv21_stage3_batchnorm1_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M4957.54,-4174.98C4954.91,-4161.57 4952,-4146.75 4949.55,-4134.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"4959.48,-4184.89 4953.14,-4175.94 4958.52,-4179.98 4957.56,-4175.07 4957.56,-4175.07 4957.56,-4175.07 4958.52,-4179.98 4961.97,-4174.21 4959.48,-4184.89 4959.48,-4184.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"4986.5\" y=\"-4155.8\" font-family=\"Times,serif\" font-size=\"14.00\">256x14x14</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage3_conv1_fwd -->\n",
       "<g id=\"node102\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage3_conv1_fwd</title>\n",
       "<polygon fill=\"#fb8072\" stroke=\"black\" points=\"5023,-4395 4929,-4395 4929,-4337 5023,-4337 5023,-4395\"/>\n",
       "<text text-anchor=\"middle\" x=\"4976\" y=\"-4369.8\" font-family=\"Times,serif\" font-size=\"14.00\">Convolution</text>\n",
       "<text text-anchor=\"middle\" x=\"4976\" y=\"-4354.8\" font-family=\"Times,serif\" font-size=\"14.00\">3x3/1x1, 256</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage3_conv1_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage3_activation1 -->\n",
       "<g id=\"edge103\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage3_conv1_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage3_activation1</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M4973.18,-4326.51C4971.27,-4300.45 4968.79,-4266.62 4967.06,-4243.09\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"4973.93,-4336.79 4968.71,-4327.14 4973.57,-4331.8 4973.2,-4326.81 4973.2,-4326.81 4973.2,-4326.81 4973.57,-4331.8 4977.69,-4326.48 4973.93,-4336.79 4973.93,-4336.79\"/>\n",
       "<text text-anchor=\"middle\" x=\"5003.5\" y=\"-4286.3\" font-family=\"Times,serif\" font-size=\"14.00\">256x14x14</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage3_conv2_fwd -->\n",
       "<g id=\"node103\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage3_conv2_fwd</title>\n",
       "<polygon fill=\"#fb8072\" stroke=\"black\" points=\"5186,-4319 5092,-4319 5092,-4261 5186,-4261 5186,-4319\"/>\n",
       "<text text-anchor=\"middle\" x=\"5139\" y=\"-4293.8\" font-family=\"Times,serif\" font-size=\"14.00\">Convolution</text>\n",
       "<text text-anchor=\"middle\" x=\"5139\" y=\"-4278.8\" font-family=\"Times,serif\" font-size=\"14.00\">1x1/2x2, 256</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage3_conv2_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage3_activation0 -->\n",
       "<g id=\"edge104\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage3_conv2_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage3_activation0</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5151.24,-4251.18C5158.39,-4225.81 5166,-4191.49 5166,-4160.5 5166,-4160.5 5166,-4160.5 5166,-3995 5166,-3967.18 5163.44,-3959.35 5152,-3934 5149.25,-3927.91 5145.63,-3921.81 5141.8,-3916.13\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5148.44,-4260.78 5146.92,-4249.92 5149.84,-4255.98 5151.24,-4251.18 5151.24,-4251.18 5151.24,-4251.18 5149.84,-4255.98 5155.56,-4252.44 5148.44,-4260.78 5148.44,-4260.78\"/>\n",
       "<text text-anchor=\"middle\" x=\"5196.5\" y=\"-4101.3\" font-family=\"Times,serif\" font-size=\"14.00\">128x28x28</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage3__plus0 -->\n",
       "<g id=\"node104\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage3__plus0</title>\n",
       "<polygon fill=\"#fccde5\" stroke=\"black\" points=\"5182.5,-4504 4867.5,-4504 4867.5,-4446 5182.5,-4446 5182.5,-4504\"/>\n",
       "<text text-anchor=\"middle\" x=\"5025\" y=\"-4471.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_resnetv21_stage3__plus0</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage3__plus0&#45;&gt;dssmrecommendernetwork0_resnetv21_stage3_conv1_fwd -->\n",
       "<g id=\"edge105\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage3__plus0&#45;&gt;dssmrecommendernetwork0_resnetv21_stage3_conv1_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5002.45,-4436.91C5000.88,-4433.93 4999.38,-4430.93 4998,-4428 4993.08,-4417.5 4988.55,-4405.58 4984.91,-4395.07\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5007.31,-4445.73 4998.55,-4439.14 5004.9,-4441.35 5002.49,-4436.97 5002.49,-4436.97 5002.49,-4436.97 5004.9,-4441.35 5006.43,-4434.8 5007.31,-4445.73 5007.31,-4445.73\"/>\n",
       "<text text-anchor=\"middle\" x=\"5028.5\" y=\"-4416.8\" font-family=\"Times,serif\" font-size=\"14.00\">256x14x14</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage3__plus0&#45;&gt;dssmrecommendernetwork0_resnetv21_stage3_conv2_fwd -->\n",
       "<g id=\"edge106\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage3__plus0&#45;&gt;dssmrecommendernetwork0_resnetv21_stage3_conv2_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5052.6,-4437.39C5054.81,-4434.24 5056.97,-4431.08 5059,-4428 5083.17,-4391.31 5108.28,-4347.16 5123.77,-4319.09\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5046.71,-4445.63 5048.87,-4434.88 5049.62,-4441.56 5052.53,-4437.5 5052.53,-4437.5 5052.53,-4437.5 5049.62,-4441.56 5056.19,-4440.12 5046.71,-4445.63 5046.71,-4445.63\"/>\n",
       "<text text-anchor=\"middle\" x=\"5098.5\" y=\"-4416.8\" font-family=\"Times,serif\" font-size=\"14.00\">256x14x14</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage3_batchnorm2_fwd -->\n",
       "<g id=\"node105\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage3_batchnorm2_fwd</title>\n",
       "<polygon fill=\"#bebada\" stroke=\"black\" points=\"5070,-4613 4698,-4613 4698,-4555 5070,-4555 5070,-4613\"/>\n",
       "<text text-anchor=\"middle\" x=\"4884\" y=\"-4580.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_resnetv21_stage3_batchnorm2_fwd</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage3_batchnorm2_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage3__plus0 -->\n",
       "<g id=\"edge107\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage3_batchnorm2_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage3__plus0</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M4929.22,-4548.68C4948.1,-4534.36 4969.77,-4517.91 4987.71,-4504.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"4921.05,-4554.89 4926.29,-4545.26 4925.03,-4551.86 4929.01,-4548.84 4929.01,-4548.84 4929.01,-4548.84 4925.03,-4551.86 4931.73,-4552.43 4921.05,-4554.89 4921.05,-4554.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"4993.5\" y=\"-4525.8\" font-family=\"Times,serif\" font-size=\"14.00\">256x14x14</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage3_activation2 -->\n",
       "<g id=\"node106\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage3_activation2</title>\n",
       "<polygon fill=\"#ffffb3\" stroke=\"black\" points=\"4931,-4722 4837,-4722 4837,-4664 4931,-4664 4931,-4722\"/>\n",
       "<text text-anchor=\"middle\" x=\"4884\" y=\"-4696.8\" font-family=\"Times,serif\" font-size=\"14.00\">Activation</text>\n",
       "<text text-anchor=\"middle\" x=\"4884\" y=\"-4681.8\" font-family=\"Times,serif\" font-size=\"14.00\">relu</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage3_activation2&#45;&gt;dssmrecommendernetwork0_resnetv21_stage3_batchnorm2_fwd -->\n",
       "<g id=\"edge108\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage3_activation2&#45;&gt;dssmrecommendernetwork0_resnetv21_stage3_batchnorm2_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M4884,-4653.58C4884,-4640.28 4884,-4625.63 4884,-4613.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"4884,-4663.89 4879.5,-4653.89 4884,-4658.89 4884,-4653.89 4884,-4653.89 4884,-4653.89 4884,-4658.89 4888.5,-4653.89 4884,-4663.89 4884,-4663.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"4914.5\" y=\"-4634.8\" font-family=\"Times,serif\" font-size=\"14.00\">256x14x14</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage3_conv3_fwd -->\n",
       "<g id=\"node107\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage3_conv3_fwd</title>\n",
       "<polygon fill=\"#fb8072\" stroke=\"black\" points=\"4931,-4831 4837,-4831 4837,-4773 4931,-4773 4931,-4831\"/>\n",
       "<text text-anchor=\"middle\" x=\"4884\" y=\"-4805.8\" font-family=\"Times,serif\" font-size=\"14.00\">Convolution</text>\n",
       "<text text-anchor=\"middle\" x=\"4884\" y=\"-4790.8\" font-family=\"Times,serif\" font-size=\"14.00\">3x3/1x1, 256</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage3_conv3_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage3_activation2 -->\n",
       "<g id=\"edge109\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage3_conv3_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage3_activation2</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M4884,-4762.58C4884,-4749.28 4884,-4734.63 4884,-4722.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"4884,-4772.89 4879.5,-4762.89 4884,-4767.89 4884,-4762.89 4884,-4762.89 4884,-4762.89 4884,-4767.89 4888.5,-4762.89 4884,-4772.89 4884,-4772.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"4914.5\" y=\"-4743.8\" font-family=\"Times,serif\" font-size=\"14.00\">256x14x14</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage3_batchnorm3_fwd -->\n",
       "<g id=\"node108\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage3_batchnorm3_fwd</title>\n",
       "<polygon fill=\"#bebada\" stroke=\"black\" points=\"5070,-4940 4698,-4940 4698,-4882 5070,-4882 5070,-4940\"/>\n",
       "<text text-anchor=\"middle\" x=\"4884\" y=\"-4907.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_resnetv21_stage3_batchnorm3_fwd</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage3_batchnorm3_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage3_conv3_fwd -->\n",
       "<g id=\"edge110\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage3_batchnorm3_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage3_conv3_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M4884,-4871.58C4884,-4858.28 4884,-4843.63 4884,-4831.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"4884,-4881.89 4879.5,-4871.89 4884,-4876.89 4884,-4871.89 4884,-4871.89 4884,-4871.89 4884,-4876.89 4888.5,-4871.89 4884,-4881.89 4884,-4881.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"4914.5\" y=\"-4852.8\" font-family=\"Times,serif\" font-size=\"14.00\">256x14x14</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage3_activation3 -->\n",
       "<g id=\"node109\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage3_activation3</title>\n",
       "<polygon fill=\"#ffffb3\" stroke=\"black\" points=\"5069,-5049 4975,-5049 4975,-4991 5069,-4991 5069,-5049\"/>\n",
       "<text text-anchor=\"middle\" x=\"5022\" y=\"-5023.8\" font-family=\"Times,serif\" font-size=\"14.00\">Activation</text>\n",
       "<text text-anchor=\"middle\" x=\"5022\" y=\"-5008.8\" font-family=\"Times,serif\" font-size=\"14.00\">relu</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage3_activation3&#45;&gt;dssmrecommendernetwork0_resnetv21_stage3_batchnorm3_fwd -->\n",
       "<g id=\"edge111\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage3_activation3&#45;&gt;dssmrecommendernetwork0_resnetv21_stage3_batchnorm3_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M4977.49,-4984.49C4959.07,-4970.21 4937.98,-4953.85 4920.49,-4940.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"4985.74,-4990.89 4975.08,-4988.32 4981.79,-4987.82 4977.84,-4984.76 4977.84,-4984.76 4977.84,-4984.76 4981.79,-4987.82 4980.6,-4981.2 4985.74,-4990.89 4985.74,-4990.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"4992.5\" y=\"-4961.8\" font-family=\"Times,serif\" font-size=\"14.00\">256x14x14</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage3_conv4_fwd -->\n",
       "<g id=\"node110\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage3_conv4_fwd</title>\n",
       "<polygon fill=\"#fb8072\" stroke=\"black\" points=\"5069,-5158 4975,-5158 4975,-5100 5069,-5100 5069,-5158\"/>\n",
       "<text text-anchor=\"middle\" x=\"5022\" y=\"-5132.8\" font-family=\"Times,serif\" font-size=\"14.00\">Convolution</text>\n",
       "<text text-anchor=\"middle\" x=\"5022\" y=\"-5117.8\" font-family=\"Times,serif\" font-size=\"14.00\">3x3/1x1, 256</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage3_conv4_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage3_activation3 -->\n",
       "<g id=\"edge112\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage3_conv4_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage3_activation3</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5022,-5089.58C5022,-5076.28 5022,-5061.63 5022,-5049.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5022,-5099.89 5017.5,-5089.89 5022,-5094.89 5022,-5089.89 5022,-5089.89 5022,-5089.89 5022,-5094.89 5026.5,-5089.89 5022,-5099.89 5022,-5099.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5052.5\" y=\"-5070.8\" font-family=\"Times,serif\" font-size=\"14.00\">256x14x14</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage3__plus1 -->\n",
       "<g id=\"node111\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage3__plus1</title>\n",
       "<polygon fill=\"#fccde5\" stroke=\"black\" points=\"5217.5,-5267 4902.5,-5267 4902.5,-5209 5217.5,-5209 5217.5,-5267\"/>\n",
       "<text text-anchor=\"middle\" x=\"5060\" y=\"-5234.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_resnetv21_stage3__plus1</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage3__plus1&#45;&gt;dssmrecommendernetwork0_resnetv21_stage3__plus0 -->\n",
       "<g id=\"edge114\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage3__plus1&#45;&gt;dssmrecommendernetwork0_resnetv21_stage3__plus0</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5080.2,-5199.8C5089.29,-5179.72 5098,-5154.17 5098,-5130 5098,-5130 5098,-5130 5098,-4583 5098,-4552.42 5077.4,-4524.13 5058.08,-4504.33\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5075.9,-5208.9 5076.11,-5197.93 5078.04,-5204.38 5080.18,-5199.86 5080.18,-5199.86 5080.18,-5199.86 5078.04,-5204.38 5084.24,-5201.78 5075.9,-5208.9 5075.9,-5208.9\"/>\n",
       "<text text-anchor=\"middle\" x=\"5128.5\" y=\"-4852.8\" font-family=\"Times,serif\" font-size=\"14.00\">256x14x14</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage3__plus1&#45;&gt;dssmrecommendernetwork0_resnetv21_stage3_conv4_fwd -->\n",
       "<g id=\"edge113\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage3__plus1&#45;&gt;dssmrecommendernetwork0_resnetv21_stage3_conv4_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5027.23,-5200.2C5025.57,-5197.21 5024.13,-5194.13 5023,-5191 5019.26,-5180.64 5018.39,-5168.63 5018.68,-5158.02\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5032.73,-5208.85 5023.57,-5202.83 5030.05,-5204.63 5027.36,-5200.41 5027.36,-5200.41 5027.36,-5200.41 5030.05,-5204.63 5031.16,-5198 5032.73,-5208.85 5032.73,-5208.85\"/>\n",
       "<text text-anchor=\"middle\" x=\"5053.5\" y=\"-5179.8\" font-family=\"Times,serif\" font-size=\"14.00\">256x14x14</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage4_batchnorm0_fwd -->\n",
       "<g id=\"node112\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage4_batchnorm0_fwd</title>\n",
       "<polygon fill=\"#bebada\" stroke=\"black\" points=\"5246,-5376 4874,-5376 4874,-5318 5246,-5318 5246,-5376\"/>\n",
       "<text text-anchor=\"middle\" x=\"5060\" y=\"-5343.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_resnetv21_stage4_batchnorm0_fwd</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage4_batchnorm0_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage3__plus1 -->\n",
       "<g id=\"edge115\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage4_batchnorm0_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage3__plus1</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5060,-5307.58C5060,-5294.28 5060,-5279.63 5060,-5267.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5060,-5317.89 5055.5,-5307.89 5060,-5312.89 5060,-5307.89 5060,-5307.89 5060,-5307.89 5060,-5312.89 5064.5,-5307.89 5060,-5317.89 5060,-5317.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5090.5\" y=\"-5288.8\" font-family=\"Times,serif\" font-size=\"14.00\">256x14x14</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage4_activation0 -->\n",
       "<g id=\"node113\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage4_activation0</title>\n",
       "<polygon fill=\"#ffffb3\" stroke=\"black\" points=\"5107,-5485 5013,-5485 5013,-5427 5107,-5427 5107,-5485\"/>\n",
       "<text text-anchor=\"middle\" x=\"5060\" y=\"-5459.8\" font-family=\"Times,serif\" font-size=\"14.00\">Activation</text>\n",
       "<text text-anchor=\"middle\" x=\"5060\" y=\"-5444.8\" font-family=\"Times,serif\" font-size=\"14.00\">relu</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage4_activation0&#45;&gt;dssmrecommendernetwork0_resnetv21_stage4_batchnorm0_fwd -->\n",
       "<g id=\"edge116\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage4_activation0&#45;&gt;dssmrecommendernetwork0_resnetv21_stage4_batchnorm0_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5060,-5416.58C5060,-5403.28 5060,-5388.63 5060,-5376.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5060,-5426.89 5055.5,-5416.89 5060,-5421.89 5060,-5416.89 5060,-5416.89 5060,-5416.89 5060,-5421.89 5064.5,-5416.89 5060,-5426.89 5060,-5426.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5090.5\" y=\"-5397.8\" font-family=\"Times,serif\" font-size=\"14.00\">256x14x14</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage4_conv0_fwd -->\n",
       "<g id=\"node114\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage4_conv0_fwd</title>\n",
       "<polygon fill=\"#fb8072\" stroke=\"black\" points=\"5024,-5594 4930,-5594 4930,-5536 5024,-5536 5024,-5594\"/>\n",
       "<text text-anchor=\"middle\" x=\"4977\" y=\"-5568.8\" font-family=\"Times,serif\" font-size=\"14.00\">Convolution</text>\n",
       "<text text-anchor=\"middle\" x=\"4977\" y=\"-5553.8\" font-family=\"Times,serif\" font-size=\"14.00\">3x3/2x2, 512</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage4_conv0_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage4_activation0 -->\n",
       "<g id=\"edge117\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage4_conv0_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage4_activation0</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5004.97,-5527.94C5015.76,-5514.03 5027.91,-5498.36 5038.05,-5485.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"4998.81,-5535.89 5001.38,-5525.23 5001.87,-5531.94 5004.94,-5527.99 5004.94,-5527.99 5004.94,-5527.99 5001.87,-5531.94 5008.49,-5530.74 4998.81,-5535.89 4998.81,-5535.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5054.5\" y=\"-5506.8\" font-family=\"Times,serif\" font-size=\"14.00\">256x14x14</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage4_batchnorm1_fwd -->\n",
       "<g id=\"node115\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage4_batchnorm1_fwd</title>\n",
       "<polygon fill=\"#bebada\" stroke=\"black\" points=\"5071,-5703 4699,-5703 4699,-5645 5071,-5645 5071,-5703\"/>\n",
       "<text text-anchor=\"middle\" x=\"4885\" y=\"-5670.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_resnetv21_stage4_batchnorm1_fwd</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage4_batchnorm1_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage4_conv0_fwd -->\n",
       "<g id=\"edge118\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage4_batchnorm1_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage4_conv0_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M4916.01,-5636.94C4927.96,-5623.03 4941.43,-5607.36 4952.67,-5594.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"4909.17,-5644.89 4912.28,-5634.37 4912.43,-5641.1 4915.69,-5637.3 4915.69,-5637.3 4915.69,-5637.3 4912.43,-5641.1 4919.1,-5640.24 4909.17,-5644.89 4909.17,-5644.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"4961\" y=\"-5615.8\" font-family=\"Times,serif\" font-size=\"14.00\">512x7x7</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage4_activation1 -->\n",
       "<g id=\"node116\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage4_activation1</title>\n",
       "<polygon fill=\"#ffffb3\" stroke=\"black\" points=\"4948,-5812 4854,-5812 4854,-5754 4948,-5754 4948,-5812\"/>\n",
       "<text text-anchor=\"middle\" x=\"4901\" y=\"-5786.8\" font-family=\"Times,serif\" font-size=\"14.00\">Activation</text>\n",
       "<text text-anchor=\"middle\" x=\"4901\" y=\"-5771.8\" font-family=\"Times,serif\" font-size=\"14.00\">relu</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage4_activation1&#45;&gt;dssmrecommendernetwork0_resnetv21_stage4_batchnorm1_fwd -->\n",
       "<g id=\"edge119\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage4_activation1&#45;&gt;dssmrecommendernetwork0_resnetv21_stage4_batchnorm1_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M4895.31,-5743.98C4893.31,-5730.57 4891.09,-5715.75 4889.23,-5703.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"4896.8,-5753.89 4890.87,-5744.66 4896.06,-5748.94 4895.32,-5744 4895.32,-5744 4895.32,-5744 4896.06,-5748.94 4899.77,-5743.33 4896.8,-5753.89 4896.8,-5753.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"4918\" y=\"-5724.8\" font-family=\"Times,serif\" font-size=\"14.00\">512x7x7</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage4_conv1_fwd -->\n",
       "<g id=\"node117\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage4_conv1_fwd</title>\n",
       "<polygon fill=\"#fb8072\" stroke=\"black\" points=\"4984,-5964 4890,-5964 4890,-5906 4984,-5906 4984,-5964\"/>\n",
       "<text text-anchor=\"middle\" x=\"4937\" y=\"-5938.8\" font-family=\"Times,serif\" font-size=\"14.00\">Convolution</text>\n",
       "<text text-anchor=\"middle\" x=\"4937\" y=\"-5923.8\" font-family=\"Times,serif\" font-size=\"14.00\">3x3/1x1, 512</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage4_conv1_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage4_activation1 -->\n",
       "<g id=\"edge120\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage4_conv1_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage4_activation1</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M4927.84,-5895.85C4921.58,-5869.75 4913.41,-5835.73 4907.74,-5812.09\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"4930.23,-5905.79 4923.52,-5897.11 4929.06,-5900.92 4927.89,-5896.06 4927.89,-5896.06 4927.89,-5896.06 4929.06,-5900.92 4932.27,-5895.01 4930.23,-5905.79 4930.23,-5905.79\"/>\n",
       "<text text-anchor=\"middle\" x=\"4950\" y=\"-5855.3\" font-family=\"Times,serif\" font-size=\"14.00\">512x7x7</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage4_conv2_fwd -->\n",
       "<g id=\"node118\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage4_conv2_fwd</title>\n",
       "<polygon fill=\"#fb8072\" stroke=\"black\" points=\"5139,-5888 5045,-5888 5045,-5830 5139,-5830 5139,-5888\"/>\n",
       "<text text-anchor=\"middle\" x=\"5092\" y=\"-5862.8\" font-family=\"Times,serif\" font-size=\"14.00\">Convolution</text>\n",
       "<text text-anchor=\"middle\" x=\"5092\" y=\"-5847.8\" font-family=\"Times,serif\" font-size=\"14.00\">1x1/2x2, 512</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage4_conv2_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage4_activation0 -->\n",
       "<g id=\"edge121\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage4_conv2_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage4_activation0</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5098.82,-5819.78C5102.78,-5794.3 5107,-5760 5107,-5729.5 5107,-5729.5 5107,-5729.5 5107,-5564 5107,-5535.39 5092.74,-5505.84 5079.93,-5485.06\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5097.2,-5829.78 5094.35,-5819.19 5098,-5824.85 5098.8,-5819.91 5098.8,-5819.91 5098.8,-5819.91 5098,-5824.85 5103.24,-5820.63 5097.2,-5829.78 5097.2,-5829.78\"/>\n",
       "<text text-anchor=\"middle\" x=\"5137.5\" y=\"-5670.3\" font-family=\"Times,serif\" font-size=\"14.00\">256x14x14</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage4__plus0 -->\n",
       "<g id=\"node119\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage4__plus0</title>\n",
       "<polygon fill=\"#fccde5\" stroke=\"black\" points=\"5133.5,-6073 4818.5,-6073 4818.5,-6015 5133.5,-6015 5133.5,-6073\"/>\n",
       "<text text-anchor=\"middle\" x=\"4976\" y=\"-6040.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_resnetv21_stage4__plus0</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage4__plus0&#45;&gt;dssmrecommendernetwork0_resnetv21_stage4_conv1_fwd -->\n",
       "<g id=\"edge122\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage4__plus0&#45;&gt;dssmrecommendernetwork0_resnetv21_stage4_conv1_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M4957.32,-6005.27C4956.14,-6002.5 4955.02,-5999.72 4954,-5997 4950.06,-5986.5 4946.56,-5974.68 4943.78,-5964.27\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"4961.48,-6014.63 4953.3,-6007.32 4959.45,-6010.06 4957.41,-6005.49 4957.41,-6005.49 4957.41,-6005.49 4959.45,-6010.06 4961.53,-6003.66 4961.48,-6014.63 4961.48,-6014.63\"/>\n",
       "<text text-anchor=\"middle\" x=\"4978\" y=\"-5985.8\" font-family=\"Times,serif\" font-size=\"14.00\">512x7x7</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage4__plus0&#45;&gt;dssmrecommendernetwork0_resnetv21_stage4_conv2_fwd -->\n",
       "<g id=\"edge123\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage4__plus0&#45;&gt;dssmrecommendernetwork0_resnetv21_stage4_conv2_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M4999.24,-6006.34C5021.3,-5971.53 5054,-5919.94 5074.11,-5888.22\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"4993.87,-6014.81 4995.42,-6003.95 4996.55,-6010.58 4999.22,-6006.36 4999.22,-6006.36 4999.22,-6006.36 4996.55,-6010.58 5003.03,-6008.77 4993.87,-6014.81 4993.87,-6014.81\"/>\n",
       "<text text-anchor=\"middle\" x=\"5039\" y=\"-5985.8\" font-family=\"Times,serif\" font-size=\"14.00\">512x7x7</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage4_batchnorm2_fwd -->\n",
       "<g id=\"node120\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage4_batchnorm2_fwd</title>\n",
       "<polygon fill=\"#bebada\" stroke=\"black\" points=\"5017,-6182 4645,-6182 4645,-6124 5017,-6124 5017,-6182\"/>\n",
       "<text text-anchor=\"middle\" x=\"4831\" y=\"-6149.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_resnetv21_stage4_batchnorm2_fwd</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage4_batchnorm2_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage4__plus0 -->\n",
       "<g id=\"edge124\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage4_batchnorm2_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage4__plus0</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M4877.28,-6117.85C4896.83,-6103.42 4919.33,-6086.82 4937.91,-6073.11\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"4869.1,-6123.89 4874.47,-6114.33 4873.12,-6120.92 4877.14,-6117.95 4877.14,-6117.95 4877.14,-6117.95 4873.12,-6120.92 4879.82,-6121.57 4869.1,-6123.89 4869.1,-6123.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"4937\" y=\"-6094.8\" font-family=\"Times,serif\" font-size=\"14.00\">512x7x7</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage4_activation2 -->\n",
       "<g id=\"node121\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage4_activation2</title>\n",
       "<polygon fill=\"#ffffb3\" stroke=\"black\" points=\"4878,-6291 4784,-6291 4784,-6233 4878,-6233 4878,-6291\"/>\n",
       "<text text-anchor=\"middle\" x=\"4831\" y=\"-6265.8\" font-family=\"Times,serif\" font-size=\"14.00\">Activation</text>\n",
       "<text text-anchor=\"middle\" x=\"4831\" y=\"-6250.8\" font-family=\"Times,serif\" font-size=\"14.00\">relu</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage4_activation2&#45;&gt;dssmrecommendernetwork0_resnetv21_stage4_batchnorm2_fwd -->\n",
       "<g id=\"edge125\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage4_activation2&#45;&gt;dssmrecommendernetwork0_resnetv21_stage4_batchnorm2_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M4831,-6222.58C4831,-6209.28 4831,-6194.63 4831,-6182.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"4831,-6232.89 4826.5,-6222.89 4831,-6227.89 4831,-6222.89 4831,-6222.89 4831,-6222.89 4831,-6227.89 4835.5,-6222.89 4831,-6232.89 4831,-6232.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"4855\" y=\"-6203.8\" font-family=\"Times,serif\" font-size=\"14.00\">512x7x7</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage4_conv3_fwd -->\n",
       "<g id=\"node122\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage4_conv3_fwd</title>\n",
       "<polygon fill=\"#fb8072\" stroke=\"black\" points=\"4878,-6400 4784,-6400 4784,-6342 4878,-6342 4878,-6400\"/>\n",
       "<text text-anchor=\"middle\" x=\"4831\" y=\"-6374.8\" font-family=\"Times,serif\" font-size=\"14.00\">Convolution</text>\n",
       "<text text-anchor=\"middle\" x=\"4831\" y=\"-6359.8\" font-family=\"Times,serif\" font-size=\"14.00\">3x3/1x1, 512</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage4_conv3_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage4_activation2 -->\n",
       "<g id=\"edge126\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage4_conv3_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage4_activation2</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M4831,-6331.58C4831,-6318.28 4831,-6303.63 4831,-6291.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"4831,-6341.89 4826.5,-6331.89 4831,-6336.89 4831,-6331.89 4831,-6331.89 4831,-6331.89 4831,-6336.89 4835.5,-6331.89 4831,-6341.89 4831,-6341.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"4855\" y=\"-6312.8\" font-family=\"Times,serif\" font-size=\"14.00\">512x7x7</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage4_batchnorm3_fwd -->\n",
       "<g id=\"node123\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage4_batchnorm3_fwd</title>\n",
       "<polygon fill=\"#bebada\" stroke=\"black\" points=\"5017,-6509 4645,-6509 4645,-6451 5017,-6451 5017,-6509\"/>\n",
       "<text text-anchor=\"middle\" x=\"4831\" y=\"-6476.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_resnetv21_stage4_batchnorm3_fwd</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage4_batchnorm3_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage4_conv3_fwd -->\n",
       "<g id=\"edge127\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage4_batchnorm3_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage4_conv3_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M4831,-6440.58C4831,-6427.28 4831,-6412.63 4831,-6400.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"4831,-6450.89 4826.5,-6440.89 4831,-6445.89 4831,-6440.89 4831,-6440.89 4831,-6440.89 4831,-6445.89 4835.5,-6440.89 4831,-6450.89 4831,-6450.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"4855\" y=\"-6421.8\" font-family=\"Times,serif\" font-size=\"14.00\">512x7x7</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage4_activation3 -->\n",
       "<g id=\"node124\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage4_activation3</title>\n",
       "<polygon fill=\"#ffffb3\" stroke=\"black\" points=\"4948,-6618 4854,-6618 4854,-6560 4948,-6560 4948,-6618\"/>\n",
       "<text text-anchor=\"middle\" x=\"4901\" y=\"-6592.8\" font-family=\"Times,serif\" font-size=\"14.00\">Activation</text>\n",
       "<text text-anchor=\"middle\" x=\"4901\" y=\"-6577.8\" font-family=\"Times,serif\" font-size=\"14.00\">relu</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage4_activation3&#45;&gt;dssmrecommendernetwork0_resnetv21_stage4_batchnorm3_fwd -->\n",
       "<g id=\"edge128\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage4_activation3&#45;&gt;dssmrecommendernetwork0_resnetv21_stage4_batchnorm3_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M4876.9,-6551.16C4867.93,-6537.45 4857.9,-6522.12 4849.51,-6509.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"4882.61,-6559.89 4873.37,-6553.98 4879.87,-6555.7 4877.13,-6551.52 4877.13,-6551.52 4877.13,-6551.52 4879.87,-6555.7 4880.9,-6549.06 4882.61,-6559.89 4882.61,-6559.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"4895\" y=\"-6530.8\" font-family=\"Times,serif\" font-size=\"14.00\">512x7x7</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage4_conv4_fwd -->\n",
       "<g id=\"node125\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage4_conv4_fwd</title>\n",
       "<polygon fill=\"#fb8072\" stroke=\"black\" points=\"5017,-6727 4923,-6727 4923,-6669 5017,-6669 5017,-6727\"/>\n",
       "<text text-anchor=\"middle\" x=\"4970\" y=\"-6701.8\" font-family=\"Times,serif\" font-size=\"14.00\">Convolution</text>\n",
       "<text text-anchor=\"middle\" x=\"4970\" y=\"-6686.8\" font-family=\"Times,serif\" font-size=\"14.00\">3x3/1x1, 512</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage4_conv4_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage4_activation3 -->\n",
       "<g id=\"edge129\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage4_conv4_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage4_activation3</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M4946.24,-6660.16C4937.4,-6646.45 4927.52,-6631.12 4919.25,-6618.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"4951.87,-6668.89 4942.67,-6662.92 4949.16,-6664.68 4946.45,-6660.48 4946.45,-6660.48 4946.45,-6660.48 4949.16,-6664.68 4950.23,-6658.04 4951.87,-6668.89 4951.87,-6668.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"4964\" y=\"-6639.8\" font-family=\"Times,serif\" font-size=\"14.00\">512x7x7</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage4__plus1 -->\n",
       "<g id=\"node126\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_stage4__plus1</title>\n",
       "<polygon fill=\"#fccde5\" stroke=\"black\" points=\"5170.5,-6836 4855.5,-6836 4855.5,-6778 5170.5,-6778 5170.5,-6836\"/>\n",
       "<text text-anchor=\"middle\" x=\"5013\" y=\"-6803.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_resnetv21_stage4__plus1</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage4__plus1&#45;&gt;dssmrecommendernetwork0_resnetv21_stage4__plus0 -->\n",
       "<g id=\"edge131\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage4__plus1&#45;&gt;dssmrecommendernetwork0_resnetv21_stage4__plus0</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5030.12,-6768.2C5037.73,-6748.08 5045,-6722.66 5045,-6699 5045,-6699 5045,-6699 5045,-6152 5045,-6121.72 5025.24,-6093.2 5006.87,-6073.24\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5026.39,-6777.62 5025.89,-6766.67 5028.23,-6772.97 5030.07,-6768.32 5030.07,-6768.32 5030.07,-6768.32 5028.23,-6772.97 5034.25,-6769.98 5026.39,-6777.62 5026.39,-6777.62\"/>\n",
       "<text text-anchor=\"middle\" x=\"5069\" y=\"-6421.8\" font-family=\"Times,serif\" font-size=\"14.00\">512x7x7</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_stage4__plus1&#45;&gt;dssmrecommendernetwork0_resnetv21_stage4_conv4_fwd -->\n",
       "<g id=\"edge130\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_stage4__plus1&#45;&gt;dssmrecommendernetwork0_resnetv21_stage4_conv4_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M4987.25,-6768.97C4985.69,-6766 4984.24,-6762.99 4983,-6760 4978.72,-6749.7 4975.78,-6737.82 4973.79,-6727.29\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"4992.25,-6777.7 4983.38,-6771.26 4989.77,-6773.36 4987.28,-6769.02 4987.28,-6769.02 4987.28,-6769.02 4989.77,-6773.36 4991.19,-6766.78 4992.25,-6777.7 4992.25,-6777.7\"/>\n",
       "<text text-anchor=\"middle\" x=\"5007\" y=\"-6748.8\" font-family=\"Times,serif\" font-size=\"14.00\">512x7x7</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_batchnorm2_fwd -->\n",
       "<g id=\"node127\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_batchnorm2_fwd</title>\n",
       "<polygon fill=\"#bebada\" stroke=\"black\" points=\"5178.5,-6945 4847.5,-6945 4847.5,-6887 5178.5,-6887 5178.5,-6945\"/>\n",
       "<text text-anchor=\"middle\" x=\"5013\" y=\"-6912.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_resnetv21_batchnorm2_fwd</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_batchnorm2_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage4__plus1 -->\n",
       "<g id=\"edge132\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_batchnorm2_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_stage4__plus1</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5013,-6876.58C5013,-6863.28 5013,-6848.63 5013,-6836.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5013,-6886.89 5008.5,-6876.89 5013,-6881.89 5013,-6876.89 5013,-6876.89 5013,-6876.89 5013,-6881.89 5017.5,-6876.89 5013,-6886.89 5013,-6886.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5037\" y=\"-6857.8\" font-family=\"Times,serif\" font-size=\"14.00\">512x7x7</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_relu1_fwd -->\n",
       "<g id=\"node128\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_relu1_fwd</title>\n",
       "<polygon fill=\"#ffffb3\" stroke=\"black\" points=\"5060,-7054 4966,-7054 4966,-6996 5060,-6996 5060,-7054\"/>\n",
       "<text text-anchor=\"middle\" x=\"5013\" y=\"-7028.8\" font-family=\"Times,serif\" font-size=\"14.00\">Activation</text>\n",
       "<text text-anchor=\"middle\" x=\"5013\" y=\"-7013.8\" font-family=\"Times,serif\" font-size=\"14.00\">relu</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_relu1_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_batchnorm2_fwd -->\n",
       "<g id=\"edge133\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_relu1_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_batchnorm2_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5013,-6985.58C5013,-6972.28 5013,-6957.63 5013,-6945.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5013,-6995.89 5008.5,-6985.89 5013,-6990.89 5013,-6985.89 5013,-6985.89 5013,-6985.89 5013,-6990.89 5017.5,-6985.89 5013,-6995.89 5013,-6995.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5037\" y=\"-6966.8\" font-family=\"Times,serif\" font-size=\"14.00\">512x7x7</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_pool1_fwd -->\n",
       "<g id=\"node129\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_pool1_fwd</title>\n",
       "<polygon fill=\"#80b1d3\" stroke=\"black\" points=\"5060,-7163 4966,-7163 4966,-7105 5060,-7105 5060,-7163\"/>\n",
       "<text text-anchor=\"middle\" x=\"5013\" y=\"-7137.8\" font-family=\"Times,serif\" font-size=\"14.00\">Pooling</text>\n",
       "<text text-anchor=\"middle\" x=\"5013\" y=\"-7122.8\" font-family=\"Times,serif\" font-size=\"14.00\">avg, 1x1/1x1</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_pool1_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_relu1_fwd -->\n",
       "<g id=\"edge134\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_pool1_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_relu1_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5013,-7094.58C5013,-7081.28 5013,-7066.63 5013,-7054.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5013,-7104.89 5008.5,-7094.89 5013,-7099.89 5013,-7094.89 5013,-7094.89 5013,-7094.89 5013,-7099.89 5017.5,-7094.89 5013,-7104.89 5013,-7104.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5037\" y=\"-7075.8\" font-family=\"Times,serif\" font-size=\"14.00\">512x7x7</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_flatten0_flatten0 -->\n",
       "<g id=\"node130\" class=\"node\"><title>dssmrecommendernetwork0_resnetv21_flatten0_flatten0</title>\n",
       "<polygon fill=\"#fdb462\" stroke=\"black\" points=\"5176.5,-7272 4849.5,-7272 4849.5,-7214 5176.5,-7214 5176.5,-7272\"/>\n",
       "<text text-anchor=\"middle\" x=\"5013\" y=\"-7239.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_resnetv21_flatten0_flatten0</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_resnetv21_flatten0_flatten0&#45;&gt;dssmrecommendernetwork0_resnetv21_pool1_fwd -->\n",
       "<g id=\"edge135\" class=\"edge\"><title>dssmrecommendernetwork0_resnetv21_flatten0_flatten0&#45;&gt;dssmrecommendernetwork0_resnetv21_pool1_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5013,-7203.58C5013,-7190.28 5013,-7175.63 5013,-7163.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5013,-7213.89 5008.5,-7203.89 5013,-7208.89 5013,-7203.89 5013,-7203.89 5013,-7203.89 5013,-7208.89 5017.5,-7203.89 5013,-7213.89 5013,-7213.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5037\" y=\"-7184.8\" font-family=\"Times,serif\" font-size=\"14.00\">512x1x1</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_dense4_fwd -->\n",
       "<g id=\"node131\" class=\"node\"><title>dssmrecommendernetwork0_dense4_fwd</title>\n",
       "<polygon fill=\"#fb8072\" stroke=\"black\" points=\"5064.5,-7381 4961.5,-7381 4961.5,-7323 5064.5,-7323 5064.5,-7381\"/>\n",
       "<text text-anchor=\"middle\" x=\"5013\" y=\"-7355.8\" font-family=\"Times,serif\" font-size=\"14.00\">FullyConnected</text>\n",
       "<text text-anchor=\"middle\" x=\"5013\" y=\"-7340.8\" font-family=\"Times,serif\" font-size=\"14.00\">128</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_dense4_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_flatten0_flatten0 -->\n",
       "<g id=\"edge136\" class=\"edge\"><title>dssmrecommendernetwork0_dense4_fwd&#45;&gt;dssmrecommendernetwork0_resnetv21_flatten0_flatten0</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5013,-7312.58C5013,-7299.28 5013,-7284.63 5013,-7272.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5013,-7322.89 5008.5,-7312.89 5013,-7317.89 5013,-7312.89 5013,-7312.89 5013,-7312.89 5013,-7317.89 5017.5,-7312.89 5013,-7322.89 5013,-7322.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5023.5\" y=\"-7293.8\" font-family=\"Times,serif\" font-size=\"14.00\">512</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_dense4_relu_fwd -->\n",
       "<g id=\"node132\" class=\"node\"><title>dssmrecommendernetwork0_dense4_relu_fwd</title>\n",
       "<polygon fill=\"#ffffb3\" stroke=\"black\" points=\"5060,-7490 4966,-7490 4966,-7432 5060,-7432 5060,-7490\"/>\n",
       "<text text-anchor=\"middle\" x=\"5013\" y=\"-7464.8\" font-family=\"Times,serif\" font-size=\"14.00\">Activation</text>\n",
       "<text text-anchor=\"middle\" x=\"5013\" y=\"-7449.8\" font-family=\"Times,serif\" font-size=\"14.00\">relu</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_dense4_relu_fwd&#45;&gt;dssmrecommendernetwork0_dense4_fwd -->\n",
       "<g id=\"edge137\" class=\"edge\"><title>dssmrecommendernetwork0_dense4_relu_fwd&#45;&gt;dssmrecommendernetwork0_dense4_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5013,-7421.58C5013,-7408.28 5013,-7393.63 5013,-7381.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5013,-7431.89 5008.5,-7421.89 5013,-7426.89 5013,-7421.89 5013,-7421.89 5013,-7421.89 5013,-7426.89 5017.5,-7421.89 5013,-7431.89 5013,-7431.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5023.5\" y=\"-7402.8\" font-family=\"Times,serif\" font-size=\"14.00\">128</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_concat1 -->\n",
       "<g id=\"node133\" class=\"node\"><title>dssmrecommendernetwork0_concat1</title>\n",
       "<polygon fill=\"#fdb462\" stroke=\"black\" points=\"5123.5,-7599 4902.5,-7599 4902.5,-7541 5123.5,-7541 5123.5,-7599\"/>\n",
       "<text text-anchor=\"middle\" x=\"5013\" y=\"-7566.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_concat1</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_concat1&#45;&gt;dssmrecommendernetwork0_dense3_relu_fwd -->\n",
       "<g id=\"edge138\" class=\"edge\"><title>dssmrecommendernetwork0_concat1&#45;&gt;dssmrecommendernetwork0_dense3_relu_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M4975.17,-7534.1C4959.79,-7519.91 4942.24,-7503.73 4927.68,-7490.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"4982.52,-7540.89 4972.12,-7537.41 4978.85,-7537.5 4975.17,-7534.11 4975.17,-7534.11 4975.17,-7534.11 4978.85,-7537.5 4978.22,-7530.8 4982.52,-7540.89 4982.52,-7540.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"4972.5\" y=\"-7511.8\" font-family=\"Times,serif\" font-size=\"14.00\">128</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_concat1&#45;&gt;dssmrecommendernetwork0_dense4_relu_fwd -->\n",
       "<g id=\"edge139\" class=\"edge\"><title>dssmrecommendernetwork0_concat1&#45;&gt;dssmrecommendernetwork0_dense4_relu_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5013,-7530.58C5013,-7517.28 5013,-7502.63 5013,-7490.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5013,-7540.89 5008.5,-7530.89 5013,-7535.89 5013,-7530.89 5013,-7530.89 5013,-7530.89 5013,-7535.89 5017.5,-7530.89 5013,-7540.89 5013,-7540.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5023.5\" y=\"-7511.8\" font-family=\"Times,serif\" font-size=\"14.00\">128</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_dropout1_fwd -->\n",
       "<g id=\"node134\" class=\"node\"><title>dssmrecommendernetwork0_dropout1_fwd</title>\n",
       "<polygon fill=\"#fccde5\" stroke=\"black\" points=\"5140.5,-7708 4885.5,-7708 4885.5,-7650 5140.5,-7650 5140.5,-7708\"/>\n",
       "<text text-anchor=\"middle\" x=\"5013\" y=\"-7675.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_dropout1_fwd</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_dropout1_fwd&#45;&gt;dssmrecommendernetwork0_concat1 -->\n",
       "<g id=\"edge140\" class=\"edge\"><title>dssmrecommendernetwork0_dropout1_fwd&#45;&gt;dssmrecommendernetwork0_concat1</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5013,-7639.58C5013,-7626.28 5013,-7611.63 5013,-7599.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5013,-7649.89 5008.5,-7639.89 5013,-7644.89 5013,-7639.89 5013,-7639.89 5013,-7639.89 5013,-7644.89 5017.5,-7639.89 5013,-7649.89 5013,-7649.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5023.5\" y=\"-7620.8\" font-family=\"Times,serif\" font-size=\"14.00\">256</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_dense5_fwd -->\n",
       "<g id=\"node135\" class=\"node\"><title>dssmrecommendernetwork0_dense5_fwd</title>\n",
       "<polygon fill=\"#fb8072\" stroke=\"black\" points=\"5066.5,-7817 4963.5,-7817 4963.5,-7759 5066.5,-7759 5066.5,-7817\"/>\n",
       "<text text-anchor=\"middle\" x=\"5015\" y=\"-7791.8\" font-family=\"Times,serif\" font-size=\"14.00\">FullyConnected</text>\n",
       "<text text-anchor=\"middle\" x=\"5015\" y=\"-7776.8\" font-family=\"Times,serif\" font-size=\"14.00\">128</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_dense5_fwd&#45;&gt;dssmrecommendernetwork0_dropout1_fwd -->\n",
       "<g id=\"edge141\" class=\"edge\"><title>dssmrecommendernetwork0_dense5_fwd&#45;&gt;dssmrecommendernetwork0_dropout1_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5014.28,-7748.58C5014.03,-7735.28 5013.76,-7720.63 5013.53,-7708.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5014.47,-7758.89 5009.79,-7748.97 5014.38,-7753.89 5014.29,-7748.89 5014.29,-7748.89 5014.29,-7748.89 5014.38,-7753.89 5018.79,-7748.8 5014.47,-7758.89 5014.47,-7758.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5025.5\" y=\"-7729.8\" font-family=\"Times,serif\" font-size=\"14.00\">256</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_dense5_relu_fwd -->\n",
       "<g id=\"node136\" class=\"node\"><title>dssmrecommendernetwork0_dense5_relu_fwd</title>\n",
       "<polygon fill=\"#ffffb3\" stroke=\"black\" points=\"5093,-7926 4999,-7926 4999,-7868 5093,-7868 5093,-7926\"/>\n",
       "<text text-anchor=\"middle\" x=\"5046\" y=\"-7900.8\" font-family=\"Times,serif\" font-size=\"14.00\">Activation</text>\n",
       "<text text-anchor=\"middle\" x=\"5046\" y=\"-7885.8\" font-family=\"Times,serif\" font-size=\"14.00\">relu</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_dense5_relu_fwd&#45;&gt;dssmrecommendernetwork0_dense5_fwd -->\n",
       "<g id=\"edge142\" class=\"edge\"><title>dssmrecommendernetwork0_dense5_relu_fwd&#45;&gt;dssmrecommendernetwork0_dense5_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5034.98,-7857.98C5031.1,-7844.57 5026.81,-7829.75 5023.2,-7817.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5037.86,-7867.89 5030.75,-7859.53 5036.46,-7863.08 5035.07,-7858.28 5035.07,-7858.28 5035.07,-7858.28 5036.46,-7863.08 5039.39,-7857.03 5037.86,-7867.89 5037.86,-7867.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5043.5\" y=\"-7838.8\" font-family=\"Times,serif\" font-size=\"14.00\">128</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_expand_dims1 -->\n",
       "<g id=\"node137\" class=\"node\"><title>dssmrecommendernetwork0_expand_dims1</title>\n",
       "<polygon fill=\"#fccde5\" stroke=\"black\" points=\"5275,-8035 5017,-8035 5017,-7977 5275,-7977 5275,-8035\"/>\n",
       "<text text-anchor=\"middle\" x=\"5146\" y=\"-8002.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_expand_dims1</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_expand_dims1&#45;&gt;dssmrecommendernetwork0_dense5_relu_fwd -->\n",
       "<g id=\"edge143\" class=\"edge\"><title>dssmrecommendernetwork0_expand_dims1&#45;&gt;dssmrecommendernetwork0_dense5_relu_fwd</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5112.66,-7969.33C5099.58,-7955.33 5084.77,-7939.49 5072.45,-7926.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5119.73,-7976.89 5109.61,-7972.65 5116.31,-7973.23 5112.9,-7969.58 5112.9,-7969.58 5112.9,-7969.58 5116.31,-7973.23 5116.19,-7966.51 5119.73,-7976.89 5119.73,-7976.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5112.5\" y=\"-7947.8\" font-family=\"Times,serif\" font-size=\"14.00\">128</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_batch_dot0 -->\n",
       "<g id=\"node138\" class=\"node\"><title>dssmrecommendernetwork0_batch_dot0</title>\n",
       "<polygon fill=\"#fccde5\" stroke=\"black\" points=\"5265.5,-8144 5026.5,-8144 5026.5,-8086 5265.5,-8086 5265.5,-8144\"/>\n",
       "<text text-anchor=\"middle\" x=\"5146\" y=\"-8111.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_batch_dot0</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_batch_dot0&#45;&gt;dssmrecommendernetwork0_expand_dims0 -->\n",
       "<g id=\"edge144\" class=\"edge\"><title>dssmrecommendernetwork0_batch_dot0&#45;&gt;dssmrecommendernetwork0_expand_dims0</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5201.9,-8081.12C5222.11,-8070.58 5245.51,-8059.86 5268,-8053 5341.32,-8030.64 5426.36,-8019.14 5494.94,-8013.24\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5192.84,-8085.94 5199.56,-8077.27 5197.26,-8083.59 5201.67,-8081.24 5201.67,-8081.24 5201.67,-8081.24 5197.26,-8083.59 5203.79,-8085.21 5192.84,-8085.94 5192.84,-8085.94\"/>\n",
       "<text text-anchor=\"middle\" x=\"5285\" y=\"-8056.8\" font-family=\"Times,serif\" font-size=\"14.00\">128x1</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_batch_dot0&#45;&gt;dssmrecommendernetwork0_expand_dims1 -->\n",
       "<g id=\"edge145\" class=\"edge\"><title>dssmrecommendernetwork0_batch_dot0&#45;&gt;dssmrecommendernetwork0_expand_dims1</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5146,-8075.58C5146,-8062.28 5146,-8047.63 5146,-8035.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5146,-8085.89 5141.5,-8075.89 5146,-8080.89 5146,-8075.89 5146,-8075.89 5146,-8075.89 5146,-8080.89 5150.5,-8075.89 5146,-8085.89 5146,-8085.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5163\" y=\"-8056.8\" font-family=\"Times,serif\" font-size=\"14.00\">128x1</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_norm0 -->\n",
       "<g id=\"node139\" class=\"node\"><title>dssmrecommendernetwork0_norm0</title>\n",
       "<polygon fill=\"#fccde5\" stroke=\"black\" points=\"5731.5,-8144 5516.5,-8144 5516.5,-8086 5731.5,-8086 5731.5,-8144\"/>\n",
       "<text text-anchor=\"middle\" x=\"5624\" y=\"-8111.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_norm0</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_norm0&#45;&gt;dssmrecommendernetwork0_expand_dims0 -->\n",
       "<g id=\"edge146\" class=\"edge\"><title>dssmrecommendernetwork0_norm0&#45;&gt;dssmrecommendernetwork0_expand_dims0</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5624,-8075.58C5624,-8062.28 5624,-8047.63 5624,-8035.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5624,-8085.89 5619.5,-8075.89 5624,-8080.89 5624,-8075.89 5624,-8075.89 5624,-8075.89 5624,-8080.89 5628.5,-8075.89 5624,-8085.89 5624,-8085.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5641\" y=\"-8056.8\" font-family=\"Times,serif\" font-size=\"14.00\">128x1</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_norm1 -->\n",
       "<g id=\"node140\" class=\"node\"><title>dssmrecommendernetwork0_norm1</title>\n",
       "<polygon fill=\"#fccde5\" stroke=\"black\" points=\"5498.5,-8144 5283.5,-8144 5283.5,-8086 5498.5,-8086 5498.5,-8144\"/>\n",
       "<text text-anchor=\"middle\" x=\"5391\" y=\"-8111.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_norm1</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_norm1&#45;&gt;dssmrecommendernetwork0_expand_dims1 -->\n",
       "<g id=\"edge147\" class=\"edge\"><title>dssmrecommendernetwork0_norm1&#45;&gt;dssmrecommendernetwork0_expand_dims1</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5349.52,-8079.92C5336.22,-8070.2 5321.03,-8060.28 5306,-8053 5291.95,-8046.19 5276.72,-8040.21 5261.41,-8035.01\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5357.55,-8085.92 5346.84,-8083.53 5353.54,-8082.93 5349.54,-8079.93 5349.54,-8079.93 5349.54,-8079.93 5353.54,-8082.93 5352.24,-8076.33 5357.55,-8085.92 5357.55,-8085.92\"/>\n",
       "<text text-anchor=\"middle\" x=\"5348\" y=\"-8056.8\" font-family=\"Times,serif\" font-size=\"14.00\">128x1</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0__mul0 -->\n",
       "<g id=\"node141\" class=\"node\"><title>dssmrecommendernetwork0__mul0</title>\n",
       "<polygon fill=\"#fccde5\" stroke=\"black\" points=\"5498,-8253 5284,-8253 5284,-8195 5498,-8195 5498,-8253\"/>\n",
       "<text text-anchor=\"middle\" x=\"5391\" y=\"-8220.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0__mul0</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0__mul0&#45;&gt;dssmrecommendernetwork0_norm0 -->\n",
       "<g id=\"edge148\" class=\"edge\"><title>dssmrecommendernetwork0__mul0&#45;&gt;dssmrecommendernetwork0_norm0</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5461.6,-8190.58C5493.87,-8175.76 5531.74,-8158.37 5562.79,-8144.11\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5452.22,-8194.89 5459.43,-8186.62 5456.76,-8192.8 5461.31,-8190.71 5461.31,-8190.71 5461.31,-8190.71 5456.76,-8192.8 5463.18,-8194.8 5452.22,-8194.89 5452.22,-8194.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5525.5\" y=\"-8165.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0__mul0&#45;&gt;dssmrecommendernetwork0_norm1 -->\n",
       "<g id=\"edge149\" class=\"edge\"><title>dssmrecommendernetwork0__mul0&#45;&gt;dssmrecommendernetwork0_norm1</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5391,-8184.58C5391,-8171.28 5391,-8156.63 5391,-8144.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5391,-8194.89 5386.5,-8184.89 5391,-8189.89 5391,-8184.89 5391,-8184.89 5391,-8184.89 5391,-8189.89 5395.5,-8184.89 5391,-8194.89 5391,-8194.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5394.5\" y=\"-8165.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0__plusscalar0 -->\n",
       "<g id=\"node142\" class=\"node\"><title>dssmrecommendernetwork0__plusscalar0</title>\n",
       "<polygon fill=\"#fccde5\" stroke=\"black\" points=\"5498,-8362 5252,-8362 5252,-8304 5498,-8304 5498,-8362\"/>\n",
       "<text text-anchor=\"middle\" x=\"5375\" y=\"-8329.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0__plusscalar0</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0__plusscalar0&#45;&gt;dssmrecommendernetwork0__mul0 -->\n",
       "<g id=\"edge150\" class=\"edge\"><title>dssmrecommendernetwork0__plusscalar0&#45;&gt;dssmrecommendernetwork0__mul0</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5380.69,-8293.98C5382.69,-8280.57 5384.91,-8265.75 5386.77,-8253.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5379.2,-8303.89 5376.23,-8293.33 5379.94,-8298.94 5380.68,-8294 5380.68,-8294 5380.68,-8294 5379.94,-8298.94 5385.13,-8294.66 5379.2,-8303.89 5379.2,-8303.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5387.5\" y=\"-8274.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_expand_dims2 -->\n",
       "<g id=\"node143\" class=\"node\"><title>dssmrecommendernetwork0_expand_dims2</title>\n",
       "<polygon fill=\"#fccde5\" stroke=\"black\" points=\"5479,-8471 5221,-8471 5221,-8413 5479,-8413 5479,-8471\"/>\n",
       "<text text-anchor=\"middle\" x=\"5350\" y=\"-8438.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_expand_dims2</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_expand_dims2&#45;&gt;dssmrecommendernetwork0__plusscalar0 -->\n",
       "<g id=\"edge151\" class=\"edge\"><title>dssmrecommendernetwork0_expand_dims2&#45;&gt;dssmrecommendernetwork0__plusscalar0</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5358.88,-8402.98C5362.02,-8389.57 5365.48,-8374.75 5368.39,-8362.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5356.57,-8412.89 5354.46,-8402.13 5357.71,-8408.02 5358.84,-8403.15 5358.84,-8403.15 5358.84,-8403.15 5357.71,-8408.02 5363.23,-8404.17 5356.57,-8412.89 5356.57,-8412.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5367.5\" y=\"-8383.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0__div0 -->\n",
       "<g id=\"node144\" class=\"node\"><title>dssmrecommendernetwork0__div0</title>\n",
       "<polygon fill=\"#fccde5\" stroke=\"black\" points=\"5269.5,-8580 5060.5,-8580 5060.5,-8522 5269.5,-8522 5269.5,-8580\"/>\n",
       "<text text-anchor=\"middle\" x=\"5165\" y=\"-8547.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0__div0</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0__div0&#45;&gt;dssmrecommendernetwork0_batch_dot0 -->\n",
       "<g id=\"edge152\" class=\"edge\"><title>dssmrecommendernetwork0__div0&#45;&gt;dssmrecommendernetwork0_batch_dot0</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5156.47,-8511.74C5152.65,-8491.43 5149,-8465.98 5149,-8443 5149,-8443 5149,-8443 5149,-8223 5149,-8196.24 5148.05,-8165.73 5147.22,-8144.15\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5158.4,-8521.56 5152.05,-8512.62 5157.44,-8516.66 5156.47,-8511.75 5156.47,-8511.75 5156.47,-8511.75 5157.44,-8516.66 5160.89,-8510.88 5158.4,-8521.56 5158.4,-8521.56\"/>\n",
       "<text text-anchor=\"middle\" x=\"5159.5\" y=\"-8329.3\" font-family=\"Times,serif\" font-size=\"14.00\">1x1</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0__div0&#45;&gt;dssmrecommendernetwork0_expand_dims2 -->\n",
       "<g id=\"edge153\" class=\"edge\"><title>dssmrecommendernetwork0__div0&#45;&gt;dssmrecommendernetwork0_expand_dims2</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5222.38,-8516.81C5247.71,-8502.16 5277.17,-8485.12 5301.4,-8471.11\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5213.61,-8521.89 5220.01,-8512.98 5217.93,-8519.38 5222.26,-8516.88 5222.26,-8516.88 5222.26,-8516.88 5217.93,-8519.38 5224.52,-8520.78 5213.61,-8521.89 5213.61,-8521.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5279.5\" y=\"-8492.8\" font-family=\"Times,serif\" font-size=\"14.00\">1x1</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_squeeze0 -->\n",
       "<g id=\"node145\" class=\"node\"><title>dssmrecommendernetwork0_squeeze0</title>\n",
       "<polygon fill=\"#fccde5\" stroke=\"black\" points=\"5279,-8689 5051,-8689 5051,-8631 5279,-8631 5279,-8689\"/>\n",
       "<text text-anchor=\"middle\" x=\"5165\" y=\"-8656.3\" font-family=\"Times,serif\" font-size=\"14.00\">dssmrecommendernetwork0_squeeze0</text>\n",
       "</g>\n",
       "<!-- dssmrecommendernetwork0_squeeze0&#45;&gt;dssmrecommendernetwork0__div0 -->\n",
       "<g id=\"edge154\" class=\"edge\"><title>dssmrecommendernetwork0_squeeze0&#45;&gt;dssmrecommendernetwork0__div0</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M5165,-8620.58C5165,-8607.28 5165,-8592.63 5165,-8580.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"5165,-8630.89 5160.5,-8620.89 5165,-8625.89 5165,-8620.89 5165,-8620.89 5165,-8620.89 5165,-8625.89 5169.5,-8620.89 5165,-8630.89 5165,-8630.89\"/>\n",
       "<text text-anchor=\"middle\" x=\"5175.5\" y=\"-8601.8\" font-family=\"Times,serif\" font-size=\"14.00\">1x1</text>\n",
       "</g>\n",
       "</g>\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<graphviz.dot.Digraph at 0x7ff0a64a48d0>"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mx.viz.plot_network(network(\n",
    "                        mx.sym.var('user'), mx.sym.var('query_text'), mx.sym.var('title'), mx.sym.var('image')),\n",
    "                    shape={'user': (1,1), 'query_text': (1,30), 'title': (1,30), 'image': (1,3,224,224)},\n",
    "                    node_attrs={\"fixedsize\":\"False\"})"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can print the summary of the network using dummy data. We can see it is already training on 32M parameters!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "--------------------------------------------------------------------------------\n",
      "        Layer (type)                                Output Shape         Param #\n",
      "================================================================================\n",
      "               Input    (2, 1), (2, 5), (2, 5), (2, 3, 224, 224)               0\n",
      "         Embedding-1                                 (2, 1, 128)        12800000\n",
      "        Activation-2  <Symbol dssmrecommendernetwork0_dense0_relu_fwd>               0\n",
      "        Activation-3                                    (2, 128)               0\n",
      "             Dense-4                                    (2, 128)           16512\n",
      "         Embedding-5                                 (2, 5, 128)         3840000\n",
      "              LSTM-6                                 (5, 2, 256)          659456\n",
      "        Activation-7  <Symbol dssmrecommendernetwork0_dense1_relu_fwd>               0\n",
      "        Activation-8                                    (2, 128)               0\n",
      "             Dense-9                                    (2, 128)           32896\n",
      "          Dropout-10                                    (2, 256)               0\n",
      "       Activation-11  <Symbol dssmrecommendernetwork0_dense2_relu_fwd>               0\n",
      "       Activation-12                                    (2, 128)               0\n",
      "            Dense-13                                    (2, 128)           32896\n",
      "        Embedding-14                                 (2, 5, 128)         3840000\n",
      "             LSTM-15                                 (5, 2, 256)          659456\n",
      "       Activation-16  <Symbol dssmrecommendernetwork0_dense3_relu_fwd>               0\n",
      "       Activation-17                                    (2, 128)               0\n",
      "            Dense-18                                    (2, 128)           32896\n",
      "        BatchNorm-19                            (2, 3, 224, 224)              12\n",
      "           Conv2D-20                           (2, 64, 112, 112)            9408\n",
      "        BatchNorm-21                           (2, 64, 112, 112)             256\n",
      "       Activation-22                           (2, 64, 112, 112)               0\n",
      "        MaxPool2D-23                             (2, 64, 56, 56)               0\n",
      "        BatchNorm-24                             (2, 64, 56, 56)             256\n",
      "           Conv2D-25                             (2, 64, 56, 56)           36864\n",
      "        BatchNorm-26                             (2, 64, 56, 56)             256\n",
      "           Conv2D-27                             (2, 64, 56, 56)           36864\n",
      "     BasicBlockV2-28                             (2, 64, 56, 56)               0\n",
      "        BatchNorm-29                             (2, 64, 56, 56)             256\n",
      "           Conv2D-30                             (2, 64, 56, 56)           36864\n",
      "        BatchNorm-31                             (2, 64, 56, 56)             256\n",
      "           Conv2D-32                             (2, 64, 56, 56)           36864\n",
      "     BasicBlockV2-33                             (2, 64, 56, 56)               0\n",
      "        BatchNorm-34                             (2, 64, 56, 56)             256\n",
      "           Conv2D-35                            (2, 128, 28, 28)            8192\n",
      "           Conv2D-36                            (2, 128, 28, 28)           73728\n",
      "        BatchNorm-37                            (2, 128, 28, 28)             512\n",
      "           Conv2D-38                            (2, 128, 28, 28)          147456\n",
      "     BasicBlockV2-39                            (2, 128, 28, 28)               0\n",
      "        BatchNorm-40                            (2, 128, 28, 28)             512\n",
      "           Conv2D-41                            (2, 128, 28, 28)          147456\n",
      "        BatchNorm-42                            (2, 128, 28, 28)             512\n",
      "           Conv2D-43                            (2, 128, 28, 28)          147456\n",
      "     BasicBlockV2-44                            (2, 128, 28, 28)               0\n",
      "        BatchNorm-45                            (2, 128, 28, 28)             512\n",
      "           Conv2D-46                            (2, 256, 14, 14)           32768\n",
      "           Conv2D-47                            (2, 256, 14, 14)          294912\n",
      "        BatchNorm-48                            (2, 256, 14, 14)            1024\n",
      "           Conv2D-49                            (2, 256, 14, 14)          589824\n",
      "     BasicBlockV2-50                            (2, 256, 14, 14)               0\n",
      "        BatchNorm-51                            (2, 256, 14, 14)            1024\n",
      "           Conv2D-52                            (2, 256, 14, 14)          589824\n",
      "        BatchNorm-53                            (2, 256, 14, 14)            1024\n",
      "           Conv2D-54                            (2, 256, 14, 14)          589824\n",
      "     BasicBlockV2-55                            (2, 256, 14, 14)               0\n",
      "        BatchNorm-56                            (2, 256, 14, 14)            1024\n",
      "           Conv2D-57                              (2, 512, 7, 7)          131072\n",
      "           Conv2D-58                              (2, 512, 7, 7)         1179648\n",
      "        BatchNorm-59                              (2, 512, 7, 7)            2048\n",
      "           Conv2D-60                              (2, 512, 7, 7)         2359296\n",
      "     BasicBlockV2-61                              (2, 512, 7, 7)               0\n",
      "        BatchNorm-62                              (2, 512, 7, 7)            2048\n",
      "           Conv2D-63                              (2, 512, 7, 7)         2359296\n",
      "        BatchNorm-64                              (2, 512, 7, 7)            2048\n",
      "           Conv2D-65                              (2, 512, 7, 7)         2359296\n",
      "     BasicBlockV2-66                              (2, 512, 7, 7)               0\n",
      "        BatchNorm-67                              (2, 512, 7, 7)            2048\n",
      "       Activation-68                              (2, 512, 7, 7)               0\n",
      "  GlobalAvgPool2D-69                              (2, 512, 1, 1)               0\n",
      "          Flatten-70                                    (2, 512)               0\n",
      "       Activation-71  <Symbol dssmrecommendernetwork0_dense4_relu_fwd>               0\n",
      "       Activation-72                                    (2, 128)               0\n",
      "            Dense-73                                    (2, 128)           65664\n",
      "          Dropout-74                                    (2, 256)               0\n",
      "       Activation-75  <Symbol dssmrecommendernetwork0_dense5_relu_fwd>               0\n",
      "       Activation-76                                    (2, 128)               0\n",
      "            Dense-77                                    (2, 128)           32896\n",
      "DSSMRecommenderNetwork-78                                      (2, 1)               0\n",
      "================================================================================\n",
      "Parameters in forward computation graph, duplicate included\n",
      "   Total params: 33195468\n",
      "   Trainable params: 33187520\n",
      "   Non-trainable params: 7948\n",
      "Shared params in forward computation graph: 0\n",
      "Unique parameters in model: 33195468\n",
      "--------------------------------------------------------------------------------\n"
     ]
    }
   ],
   "source": [
    "user  = mx.nd.array([[200], [100]], ctx)\n",
    "query = mx.nd.array([[10, 20, 0, 0, 0], [40, 50, 0, 0, 0]], ctx) # Example of an encoded text\n",
    "title = mx.nd.array([[10, 20, 0, 0, 0], [40, 50, 0, 0, 0]], ctx) # Example of an encoded text\n",
    "image = mx.nd.random.uniform(shape=(2,3, 224,224), ctx=ctx) # Example of an encoded image\n",
    "\n",
    "\n",
    "network.summary(user, query, title, image)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "\n",
       "[[0.34404233]\n",
       " [0.3254302 ]]\n",
       "<NDArray 2x1 @gpu(0)>"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "network(user, query, title, image)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The output is the similarity, if we wanted to train it on real data, we would need to minimize the Cosine loss, 1 - cosine_similarity."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
